@import url("https://fonts.googleapis.com/css?family=Roboto+Condensed:400,300,700");
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,300,400italic,300italic,600,600italic,700,700italic,800,800italic");

@font-face {
    font-family: 'icomoon';
    src:    url('../fonts/icomoon.eot?z8h1zd');
    src:    url('../fonts/icomoon.eot?z8h1zd#iefix') format('embedded-opentype'),
        url('../fonts/icomoon.ttf?z8h1zd') format('truetype'),
        url('../fonts/icomoon.woff?z8h1zd') format('woff'),
        url('../fonts/icomoon.svg?z8h1zd#icomoon') format('svg');
    font-weight: normal;
    font-style: normal;
}

[class^="icon-"], [class*=" icon-"] {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;

    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.icon-envelope:before {
    content: "\e903";
}
.icon-twitter:before {
    content: "\e901";
}
.icon-slack:before {
  content: "\e909";
}
.icon-keyboard_arrow_right:before {
  content: "\e900";
}


.slack {
	background:url('../images/slack_mark_16px.png') no-repeat 0 center;
	padding-left:21px;
}
.github {
	background:url('../images/github.png') no-repeat 0 center;
	padding-left:21px;
}
.mail {
	background:url('../images/mail.png') no-repeat 0 center;
	padding-left:21px;
}
.jira {
	background:url('../images/jira.png') no-repeat 0 center;
	padding-left:21px;
}
.twitter-icon {
	background:url('../images/twitter-icon.png') no-repeat 0 center;
	padding-left:21px;
}

/* Made with Bones: http://themble.com/bones :) */
/******************************************************************
Site Name:
Author:

Stylesheet: Main Stylesheet

Here's where the magic happens. Here, you'll see we are calling in
the separate media queries. The base mobile goes outside any query
and is called at the beginning, after that we call the rest
of the styles inside media queries.

Helpful articles on Sass file organization:
http://thesassway.com/advanced/modular-css-naming-conventions

******************************************************************/
/*********************
IMPORTING PARTIALS
These files are needed at the beginning so that we establish all
our mixins, functions, and variables that we'll be using across
the whole project.
*********************/
/* normalize.css 2012-07-07T09:50 UTC - http://github.com/necolas/normalize.css */
/* ========================================================================== HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined in IE 8/9. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }

/** Correct `inline-block` display not defined in IE 8/9. */
audio, canvas, video { display: inline-block; }

/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }

/** Address `[hidden]` styling not present in IE 8/9. Hide the `template` element in IE, Safari, and Firefox < 22. */
[hidden], template { display: none; }

/* ========================================================================== Base ========================================================================== */
/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

/** Remove default margin. */
body { margin: 0; }

/* ========================================================================== Links ========================================================================== */
/** Remove the gray background color from active links in IE 10. */
a { background: transparent; }

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

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

/* ========================================================================== Typography ========================================================================== */
/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }

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

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

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

/** Address differences between Firefox and other browsers. */
hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }

/* proper formatting (http://blog.fontdeck.com/post/9037028497/hyphens)
*/
p { -webkit-hyphens: auto; -epub-hyphens: auto; -moz-hyphens: auto; hyphens: auto; }

/* Addresses margins set differently in IE6/7. */
pre { margin: 0; }

/** Correct font family set oddly in Safari 5 and Chrome. */
code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; }

/** Improve readability of pre-formatted text in all browsers. */
pre { white-space: pre-wrap; }

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

/** Address inconsistent and variable font size in all browsers. */
q:before, q:after { content: ''; content: none; }

small, .small { font-size: 75%; }

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

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* ========================================================================== Lists
========================================================================== */
/* Addresses margins set differently in IE6/7. */
dl, menu, ol, ul { margin: 1em 0; }

dd { margin: 0; }

/* Addresses paddings set differently in IE6/7. */
menu { padding: 0 0 0 40px; }

ol, ul { padding: 0; /*list-style-type: none;*/ }

/* Corrects list images handled incorrectly in IE7. */
nav ul, nav ol { list-style: none; list-style-image: none; }

/* ========================================================================== Embedded content
========================================================================== */
/** Remove border when inside `a` element in IE 8/9. */
img { border: 0; }

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

/* ========================================================================== Figures ========================================================================== */
/** Address margin not present in IE 8/9 and Safari 5. */
figure { margin: 0; }

/* ========================================================================== Forms ========================================================================== */
/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }

/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }

/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */
button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ }

/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
button, input { line-height: normal; }

/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */
button, select { text-transform: none; }

/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }

/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }

/** 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }

/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; }

/** Remove inner padding and search 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; }

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

/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */
textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ }

/* ========================================================================== Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }

* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

.image-replacement, .ir { text-indent: 100%; white-space: nowrap; overflow: hidden; }

.clearfix, .cf, .comment-respond { zoom: 1; }
.clearfix:before, .clearfix:after, .cf:before, .comment-respond:before, .cf:after, .comment-respond:after { content: ""; display: table; }
.clearfix:after, .cf:after, .comment-respond:after { clear: both; }

/*
use the best ampersand
http://simplebits.com/notebook/2008/08/14/ampersands-2/
*/
span.amp { font-family: Baskerville,'Goudy Old Style',Palatino,'Book Antiqua',serif !important; font-style: italic; }

/******************************************************************
Site Name:
Author:

Stylesheet: Variables

Here is where we declare all our variables like colors, fonts,
base values, and defaults. We want to make sure this file ONLY
contains variables that way our files don't get all messy.
No one likes a mess.

******************************************************************/
/*********************
COLORS
Need help w/ choosing your colors? Try this site out:
http://0to255.com/
*********************/
/*
Here's a great tutorial on how to
use color variables properly:
http://sachagreif.com/sass-color-variables/
*/
/******************************************************************
Site Name:
Author:

Stylesheet: Typography

Need to import a font or set of icons for your site? Drop them in
here or just use this to establish your typographical grid. Or not.
Do whatever you want to...GOSH!

Helpful Articles:
http://trentwalton.com/2012/06/19/fluid-type/
http://ia.net/blog/responsive-typography-the-basics/
http://alistapart.com/column/responsive-typography-is-a-physical-discipline

******************************************************************/
/*********************
FONT FACE (IN YOUR FACE)
*********************/
/*  To embed your own fonts, use this syntax and place your fonts inside the library/fonts folder. For more information on embedding fonts, go to: http://www.fontsquirrel.com/ Be sure to remove the comment brackets.
*/
/*  @font-face { font-family: 'Font Name'; src: url('../css/library/fonts/font-name.eot'); src: url('../css/library/fonts/font-name.eot#iefix') format('embedded-opentype'), url('../css/library/fonts/font-name.woff') format('woff'), url('../css/library/fonts/font-name.ttf') format('truetype'), url('../css/library/fonts/font-name.svg#font-name') format('svg'); font-weight: normal; font-style: normal; }
*/
/*
The following is based of Typebase:
https://github.com/devinhunt/typebase.css
I've edited it a bit, but it's a nice starting point.
*/
/* i imported this one in the functions file so bones would look sweet. don't forget to remove it for your site.
*/
/*
some nice typographical defaults
more here: http://www.newnet-soft.com/blog/csstypography
*/
p { -ms-word-wrap: break-word; word-break: break-word; word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; -webkit-hyphenate-before: 2; -webkit-hyphenate-after: 3; hyphenate-lines: 3; -webkit-font-feature-settings: "liga", "dlig"; -moz-font-feature-settings: "liga=1, dlig=1"; -ms-font-feature-settings: "liga", "dlig"; -o-font-feature-settings: "liga", "dlig"; font-feature-settings: "liga", "dlig"; }

/******************************************************************
Site Name:
Author:

Stylesheet: Sass Functions

You can do a lot of really cool things in Sass. Functions help you
make repeated actions a lot easier. They are really similar to mixins,
but can be used for so much more.

Anyway, keep them all in here so it's easier to find when you're
looking for one.

For more info on functions, go here:
http://sass-lang.com/documentation/Sass/Script/Functions.html

******************************************************************/
/*********************
COLOR FUNCTIONS
These are helpful when you're working
with shadows and such things. It's essentially
a quicker way to write RGBA.

Example:
box-shadow: 0 0 4px black(0.3);
compiles to:
box-shadow: 0 0 4px rgba(0,0,0,0.3);
*********************/
/*********************
RESPONSIVE HELPER FUNCTION
If you're creating a responsive site, then
you've probably already read
Responsive Web Design: http://www.abookapart.com/products/responsive-web-design

Here's a nice little helper function for calculating
target / context
as mentioned in that book.

Example:
width: cp(650px, 1000px);
or
width: calc-percent(650px, 1000px);
both compile to:
width: 65%;
*********************/
/******************************************************************
Site Name:
Author:

Stylesheet: Mixins Stylesheet

This is where you can take advantage of Sass' great features: Mixins.
I won't go in-depth on how they work exactly,
there are a few articles below that will help do that. What I will
tell you is that this will help speed up simple changes like
changing a color or adding CSS3 techniques gradients.

A WORD OF WARNING: It's very easy to overdo it here. Be careful and
remember less is more.

Helpful:
http://sachagreif.com/useful-sass-mixins/
http://thesassway.com/intermediate/leveraging-sass-mixins-for-cleaner-code
http://web-design-weekly.com/blog/2013/05/12/handy-sass-mixins/

******************************************************************/
/*********************
TRANSITION
*********************/
/*
I totally rewrote this to be cleaner and easier to use.
You'll need to be using Sass 3.2+ for these to work.
Thanks to @anthonyshort for the inspiration on these.
USAGE: @include transition(all 0.2s ease-in-out);
*/
/*********************
CSS3 GRADIENTS
Be careful with these since they can
really slow down your CSS. Don't overdo it.
*********************/
/* @include css-gradient(#dfdfdf,#f8f8f8); */
/*********************
BOX SIZING
*********************/
/* @include box-sizing(border-box); */
/* NOTE: value of "padding-box" is only supported in Gecko. So
probably best not to use it. I mean, were you going to anyway? */
/******************************************************************
Site Name:
Author:

Stylesheet: Grid Stylesheet

I've seperated the grid so you can swap it out easily. It's
called at the top the style.scss stylesheet.

There are a ton of grid solutions out there. You should definitely
experiment with your own. Here are some recommendations:

http://gridsetapp.com - Love this site. Responsive Grids made easy.
http://susy.oddbird.net/ - Grids using Compass. Very elegant.
http://gridpak.com/ - Create your own responsive grid.
https://github.com/dope/lemonade - Neat lightweight grid.


The grid below is a custom built thingy I modeled a bit after
Gridset. It's VERY basic and probably shouldn't be used on
your client projects. The idea is you learn how to roll your
own grids. It's better in the long run and allows you full control
over your project's layout.

******************************************************************/
.last-col { float: right; padding-right: 0 !important; }

/*
Mobile Grid Styles
These are the widths for the mobile grid.
There are four types, but you can add or customize
them however you see fit.
*/
@media (max-width: 767px) { .m-all { float: left; padding-right: 0.75em; width: 100%; padding-right: 0; }
  .m-1of2 { float: left; padding-right: 0.75em; width: 50%; }
  .m-1of3 { float: left; padding-right: 0.75em; width: 33.33%; }
  .m-2of3 { float: left; padding-right: 0.75em; width: 66.66%; }
  .m-1of4 { float: left; padding-right: 0.75em; width: 25%; }
  .m-3of4 { float: left; padding-right: 0.75em; width: 75%; } }
/* Portrait tablet to landscape */
@media (min-width: 768px) and (max-width: 1029px) { .t-all { float: left; padding-right: 0.75em; width: 100%; padding-right: 0; }
  .t-1of2 { float: left; padding-right: 0.75em; width: 50%; }
  .t-1of3 { float: left; padding-right: 0.75em; width: 33.33%; }
  .t-2of3 { float: left; padding-right: 0.75em; width: 66.66%; }
  .t-1of4 { float: left; padding-right: 0.75em; width: 25%; }
  .t-3of4 { float: left; padding-right: 0.75em; width: 75%; }
  .t-1of5 { float: left; padding-right: 0.75em; width: 20%; }
  .t-2of5 { float: left; padding-right: 0.75em; width: 40%; }
  .t-3of5 { float: left; padding-right: 0.75em; width: 60%; }
  .t-4of5 { float: left; padding-right: 0.75em; width: 80%; } }
/* Landscape to small desktop */
@media (min-width: 1030px) { .d-all { float: left; padding-right: 0.75em; width: 100%; padding-right: 0; }
  .d-1of2 { float: left; padding-right: 0.75em; width: 50%; }
  .d-1of3 { float: left; padding-right: 0.75em; width: 33.33%; }
  .d-2of3 { float: left; padding-right: 0.75em; width: 66.66%; }
  .d-1of4 { float: left; padding-right: 0.75em; width: 25%; }
  .d-3of4 { float: left; padding-right: 0.75em; width: 75%; }
  .d-1of5 { float: left; padding-right: 0.75em; width: 20%; }
  .d-2of5 { float: left; padding-right: 0.75em; width: 40%; }
  .d-3of5 { float: left; padding-right: 0.75em; width: 60%; }
  .d-4of5 { float: left; padding-right: 0.75em; width: 80%; }
  .d-1of6 { float: left; padding-right: 0.75em; width: 16.6666666667%; }
  .d-1of7 { float: left; padding-right: 0.75em; width: 14.2857142857%; }
  .d-2of7 { float: left; padding-right: 0.75em; width: 28.5714286%; }
  .d-3of7 { float: left; padding-right: 0.75em; width: 42.8571429%; }
  .d-4of7 { float: left; padding-right: 0.75em; width: 57.1428572%; }
  .d-5of7 { float: left; padding-right: 0.75em; width: 71.4285715%; }
  .d-6of7 { float: left; padding-right: 0.75em; width: 85.7142857%; }
  .d-1of8 { float: left; padding-right: 0.75em; width: 12.5%; }
  .d-1of9 { float: left; padding-right: 0.75em; width: 11.1111111111%; }
  .d-1of10 { float: left; padding-right: 0.75em; width: 10%; }
  .d-1of11 { float: left; padding-right: 0.75em; width: 9.09090909091%; }
  .d-1of12 { float: left; padding-right: 0.75em; width: 8.33%; } }
/*********************
IMPORTING MODULES
Modules are reusable blocks or elements we use throughout the project.
We can break them up as much as we want or just keep them all in one.
I mean, you can do whatever you want. The world is your oyster. Unless
you hate oysters, then the world is your peanut butter & jelly sandwich.
*********************/
/******************************************************************
Site Name:
Author:

Stylesheet: Alert Styles

If you want to use these alerts in your design, you can. If not,
you can just remove this stylesheet.

******************************************************************/
.alert-help, .alert-info, .alert-error, .alert-success { margin: 10px; padding: 5px 18px; border: 1px solid; }

.alert-help { border-color: #e8dc59; background: #ebe16f; }

.alert-info { border-color: #bfe4f4; background: #d5edf8; }

.alert-error { border-color: #f8cdce; background: #fbe3e4; }

.alert-success { border-color: #deeaae; background: #e6efc2; }

/******************************************************************
Site Name:
Author:

Stylesheet: Button Styles

Buttons are a pretty important part of your site's style, so it's
important to have a consistent baseline for them. Use this stylesheet
to create all kinds of buttons.

Helpful Links:
http://galp.in/blog/2011/08/02/the-ui-guide-part-1-buttons/

******************************************************************/
/*********************
BUTTON DEFAULTS
We're gonna use a placeholder selector here
so we can use common styles. We then use this
to load up the defaults in all our buttons.

Here's a quick video to show how it works:
http://www.youtube.com/watch?v=hwdVpKiJzac

*********************/
.blue-btn, .comment-reply-link, #submit { display: inline-block; position: relative; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; text-decoration: none; color: white; font-size: 0.9em; font-size: 34px; line-height: 34px; font-weight: normal; padding: 0 24px; border-radius: 4px; border: 0; cursor: pointer; -webkit-transition: background-color 0.14s ease-in-out; transition: background-color 0.14s ease-in-out; }
.blue-btn:hover, .comment-reply-link:hover, #submit:hover, .blue-btn:focus, .comment-reply-link:focus, #submit:focus { color: white; text-decoration: none; outline: none; }
.blue-btn:active, .comment-reply-link:active, #submit:active { top: 1px; }

/*
An example button.
You can use this example if you want. Just replace all the variables
and it will create a button dependant on those variables.
*/
.blue-btn, .comment-reply-link, #submit { background-color: #2980b9; }
.blue-btn:hover, .comment-reply-link:hover, #submit:hover, .blue-btn:focus, .comment-reply-link:focus, #submit:focus { background-color: #2574a8; }
.blue-btn:active, .comment-reply-link:active, #submit:active { background-color: #2472a4; }

.y-btn, .y-btn:visited { background: transparent; padding: 10px 35px; border: 2px solid #c97644; color: #c97644; text-align:center;text-decoration: none; font-weight: bold; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; text-transform: uppercase; letter-spacing: 1px; font-size: 10.5pt; -webkit-transition: all .3s ease; -moz-transition: all .3s ease; -ms-transition: all .3s ease; -o-transition: all .3s ease; transition: all .3s ease; display:block;margin:0 auto 15px;max-width:225px;}
.y-btn:hover, .y-btn:focus, .y-btn:active, .y-btn:visited:hover, .y-btn:visited:focus, .y-btn:visited:active { background: #c97644; color: white; }

.btn-margin { margin-top: 50px; }

/******************************************************************
Site Name:
Author:

Stylesheet: Form Styles

We put all the form and button styles in here to setup a consistent
look. If we need to customize them, we can do this in the main
stylesheets and just override them. Easy Peasy.

You're gonna see a few data-uri thingies down there. If you're not
sure what they are, check this link out:
http://css-tricks.com/data-uris/
If you want to create your own, use this helpful link:
http://websemantics.co.uk/online_tools/image_to_data_uri_convertor/

******************************************************************/
/*********************
INPUTS
*********************/
input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], select, textarea, .field { display: block; height: 40px; line-height: 1em; padding: 0 12px; margin-bottom: 14px; font-size: 1em; color: #5c6b80; border-radius: 3px; vertical-align: middle; box-shadow: none; border: 0; width: 100%; max-width: 400px; font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; background-color: white; -webkit-transition: background-color 0.24s ease-in-out; transition: background-color 0.24s ease-in-out; }
input[type="text"]:focus, input[type="text"]:active, input[type="password"]:focus, input[type="password"]:active, input[type="datetime"]:focus, input[type="datetime"]:active, input[type="datetime-local"]:focus, input[type="datetime-local"]:active, input[type="date"]:focus, input[type="date"]:active, input[type="month"]:focus, input[type="month"]:active, input[type="time"]:focus, input[type="time"]:active, input[type="week"]:focus, input[type="week"]:active, input[type="number"]:focus, input[type="number"]:active, input[type="email"]:focus, input[type="email"]:active, input[type="url"]:focus, input[type="url"]:active, input[type="search"]:focus, input[type="search"]:active, input[type="tel"]:focus, input[type="tel"]:active, input[type="color"]:focus, input[type="color"]:active, select:focus, select:active, textarea:focus, textarea:active, .field:focus, .field:active { background-color: #fafafa; outline: none; }
input[type="text"].error, input[type="text"].is-invalid, input[type="password"].error, input[type="password"].is-invalid, input[type="datetime"].error, input[type="datetime"].is-invalid, input[type="datetime-local"].error, input[type="datetime-local"].is-invalid, input[type="date"].error, input[type="date"].is-invalid, input[type="month"].error, input[type="month"].is-invalid, input[type="time"].error, input[type="time"].is-invalid, input[type="week"].error, input[type="week"].is-invalid, input[type="number"].error, input[type="number"].is-invalid, input[type="email"].error, input[type="email"].is-invalid, input[type="url"].error, input[type="url"].is-invalid, input[type="search"].error, input[type="search"].is-invalid, input[type="tel"].error, input[type="tel"].is-invalid, input[type="color"].error, input[type="color"].is-invalid, select.error, select.is-invalid, textarea.error, textarea.is-invalid, .field.error, .field.is-invalid { color: #fbe3e4; border-color: #fbe3e4; background-color: white; background-position: 99% center; background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDREQkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDREQ0YwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ3ODRGRkE2RjA0QTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERBRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+U8iT5wAAAedJREFUeNqk1U9I02Ecx/HtV3aIFAc1hcRDUoGXRAq0oNLA2CrsEFmHbikZu0iQYIFGYAiegkCpLipBxPpDEBMUzB0EhSG2LhG7hMR2GviPgUTvB57Bw8P3+U23B16HPX8+e/b8nt93wezZSMCnhXETF3AcB5BDCnH8Dq98ExcGHcFn8Ah3cdDni+fxnPDv9oAnTB7CKu6VCFXtChZy56LxUjt+jfuB8toSOth9wd7xWAWhqrUjYR/FRTwWJm+iIPT/w7bQf5ljiZnBg45dtKFX6H+LU8gIY8OEV6vgTkStwXWE8BPTGDHGPqNPz2mCfSOOYkA99TvCt1bhGPL68zMcwmncMuape10jrI+q4BbHi/FLn31S9z2x5tRhTc+1W506ipM+T3oRD4X+8+qtc4SqFvL0z/Fr14S+Szjis8bz9Lvvaq8cwS/wwGfdlqfPSWqTiFlX77o13u9Ym1PBs8JAytpRoy44X9Ft9E/gvbA+rYKn8NcaaMVc8UHgBw4b9/iqUQZ6hOAJFbyDcUflmsEX4a6+wTtHGfhAIUqa1U29Zc2BytouThD8x6xuN5CtMPi2CrXLZkZf/HyZoRFCP7n+QVR4PV7uI/AjGghN7OU/r1ilnqILtfpNC+o6vIFljBKYlhb/F2AAgaBsWR5wRiIAAAAASUVORK5CYII=); outline-color: #fbe3e4; }
input[type="text"].success, input[type="text"].is-valid, input[type="password"].success, input[type="password"].is-valid, input[type="datetime"].success, input[type="datetime"].is-valid, input[type="datetime-local"].success, input[type="datetime-local"].is-valid, input[type="date"].success, input[type="date"].is-valid, input[type="month"].success, input[type="month"].is-valid, input[type="time"].success, input[type="time"].is-valid, input[type="week"].success, input[type="week"].is-valid, input[type="number"].success, input[type="number"].is-valid, input[type="email"].success, input[type="email"].is-valid, input[type="url"].success, input[type="url"].is-valid, input[type="search"].success, input[type="search"].is-valid, input[type="tel"].success, input[type="tel"].is-valid, input[type="color"].success, input[type="color"].is-valid, select.success, select.is-valid, textarea.success, textarea.is-valid, .field.success, .field.is-valid { color: #e6efc2; border-color: #e6efc2; background-color: white; background-position: 99% center; background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDRERkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDRFMEYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY0MzQ0NERERjA0QjExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERFRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7olkTQAAAfhJREFUeNqklU9oE0EUhzdroWjw0tBeWlDxkEaIp55TsCU9VKIgCrHBelA8CQ1Kr1WPbZrQ3gqtQqvGqxpQc2jBk6BIIaAGD4qNCKURpDSKiPi98gLDsJt//uBjsztvfnk7895sIPAw6/joGMThFJyAXn2+A+9gA57/TaY/eU0OeBgfhGm4DiGnsb7DAszxBz/NAdcKjMJLuNWCqagHbsscN5+L+hmH4QkMOe1L5jzFfNA2PgT34ajTuY7AGuZB0/hmh5m+gS0r8xv1zRvg+gGCHZiOwnF4DP3iB3sQkYxPd2C6CWfhB9Xwlus5+K1j4jXuaq3a+gM1H9OPcAa+7q9lPidZJqHbiIm7Wg22rsEI7FrPSzAMX/T+ADyAKSsu7Fr1KplehLvwCs5DvfBf65p+MypqRbO1FXK9utH4/QKuaqYTsG3E3INJv00Q46px3+XxanJ/Ute2/vqP4FKDza2KcdljIKdnhS0xXYULTaqmLMZFn8FFSFtvt6x70ExFCS5oUXspq2ssa7oEl1swFa+CGFdgtkHgPDyDKy02zyxNU6lXRUZb1EuHYayNNs+Yh5B0WQo+/8fpJnNTZFuzz2OpjoQ2QruSOQlMy35fEGmEGMxY9e1brxobw7TkWA1h6xfckUPb+JhGoE/Hpfvew7qUld/H9J8AAwDpw3WYrxcZ3QAAAABJRU5ErkJggg==); outline-color: #e6efc2; }
input[type="text"][disabled], input[type="text"].is-disabled, input[type="password"][disabled], input[type="password"].is-disabled, input[type="datetime"][disabled], input[type="datetime"].is-disabled, input[type="datetime-local"][disabled], input[type="datetime-local"].is-disabled, input[type="date"][disabled], input[type="date"].is-disabled, input[type="month"][disabled], input[type="month"].is-disabled, input[type="time"][disabled], input[type="time"].is-disabled, input[type="week"][disabled], input[type="week"].is-disabled, input[type="number"][disabled], input[type="number"].is-disabled, input[type="email"][disabled], input[type="email"].is-disabled, input[type="url"][disabled], input[type="url"].is-disabled, input[type="search"][disabled], input[type="search"].is-disabled, input[type="tel"][disabled], input[type="tel"].is-disabled, input[type="color"][disabled], input[type="color"].is-disabled, select[disabled], select.is-disabled, textarea[disabled], textarea.is-disabled, .field[disabled], .field.is-disabled { cursor: not-allowed; border-color: #cfcfcf; opacity: 0.6; }
input[type="text"][disabled]:focus, input[type="text"][disabled]:active, input[type="text"].is-disabled:focus, input[type="text"].is-disabled:active, input[type="password"][disabled]:focus, input[type="password"][disabled]:active, input[type="password"].is-disabled:focus, input[type="password"].is-disabled:active, input[type="datetime"][disabled]:focus, input[type="datetime"][disabled]:active, input[type="datetime"].is-disabled:focus, input[type="datetime"].is-disabled:active, input[type="datetime-local"][disabled]:focus, input[type="datetime-local"][disabled]:active, input[type="datetime-local"].is-disabled:focus, input[type="datetime-local"].is-disabled:active, input[type="date"][disabled]:focus, input[type="date"][disabled]:active, input[type="date"].is-disabled:focus, input[type="date"].is-disabled:active, input[type="month"][disabled]:focus, input[type="month"][disabled]:active, input[type="month"].is-disabled:focus, input[type="month"].is-disabled:active, input[type="time"][disabled]:focus, input[type="time"][disabled]:active, input[type="time"].is-disabled:focus, input[type="time"].is-disabled:active, input[type="week"][disabled]:focus, input[type="week"][disabled]:active, input[type="week"].is-disabled:focus, input[type="week"].is-disabled:active, input[type="number"][disabled]:focus, input[type="number"][disabled]:active, input[type="number"].is-disabled:focus, input[type="number"].is-disabled:active, input[type="email"][disabled]:focus, input[type="email"][disabled]:active, input[type="email"].is-disabled:focus, input[type="email"].is-disabled:active, input[type="url"][disabled]:focus, input[type="url"][disabled]:active, input[type="url"].is-disabled:focus, input[type="url"].is-disabled:active, input[type="search"][disabled]:focus, input[type="search"][disabled]:active, input[type="search"].is-disabled:focus, input[type="search"].is-disabled:active, input[type="tel"][disabled]:focus, input[type="tel"][disabled]:active, input[type="tel"].is-disabled:focus, input[type="tel"].is-disabled:active, input[type="color"][disabled]:focus, input[type="color"][disabled]:active, input[type="color"].is-disabled:focus, input[type="color"].is-disabled:active, select[disabled]:focus, select[disabled]:active, select.is-disabled:focus, select.is-disabled:active, textarea[disabled]:focus, textarea[disabled]:active, textarea.is-disabled:focus, textarea.is-disabled:active, .field[disabled]:focus, .field[disabled]:active, .field.is-disabled:focus, .field.is-disabled:active { background-color: #d5edf8; }

input[type="password"] { letter-spacing: 0.3em; }

textarea { max-width: 100%; min-height: 120px; line-height: 1.5em; }

select { -webkit-appearance: none; /* 1 */ -moz-appearance: none; appearance: none; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOEZCMjYxMEYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOEZCMjYxMUYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RkIyNjBFRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4RkIyNjBGRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Vxkp9gAAAI9JREFUeNpidHFxucHAwKAOxE+AmJmBMPgLxDJAfJMFSKwD4kqoAClgA+P///8ZXF1dPaCGcBKh6QcQB+3evXs7WDMIAA2QB1I7gFgDj0aQFz2BGh+AOEwwUaDAQyBlCMR7cGjcC5KHaQQBuM3IAOiKTiBVhiTUDdRUhq4Oq2aoAelAahIQ5wM1zsCmBiDAADhYMJXVZ9u9AAAAAElFTkSuQmCC); background-repeat: no-repeat; background-position: 97.5% center; }

form#searchform input#searchsubmit { background: transparent url(../images/search.png) top left no-repeat; width: 50px; padding-left: 5px; display: block; overflow: hidden; /* Hack for IE */ text-indent: -9999px; font-size: 0px; line-height: 0px; }

/*********************
BASE (MOBILE) SIZE
This are the mobile styles. It's what people see on their phones. If
you set a great foundation, you won't need to add too many styles in
the other stylesheets. Remember, keep it light: Speed is Important.
*********************/
/******************************************************************
Site Name:
Author:

Stylesheet: Base Mobile Stylesheet

Be light and don't over style since everything here will be
loaded by mobile devices. You want to keep it as minimal as
possible. This is called at the top of the main stylsheet
and will be used across all viewports.

******************************************************************/
/*********************
GENERAL STYLES
*********************/
body { font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 100%; line-height: 1.5; color: #0b0b0b; background-color: #f7f7f7; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-hyphens: none; -epub-hyphens: none; -moz-hyphens: none; hyphens: none; }

p { -webkit-hyphens: none; -epub-hyphens: none; -moz-hyphens: none; hyphens: none; letter-spacing: 1px; line-height: 1.8em; font-size: 11pt; }

ol {padding-left:20px;font-size:11pt;line-height:1.8em;letter-spacing:1px;}

ul{padding-left:20px;list-style-image:url('../images/bullet.png');font-size:11pt;line-height:1.8em;letter-spacing:1px;}
ul li {margin-bottom:10px;}

img { max-width: 100%; height: auto; }

.header { box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.25); }

.thin {font-weight:400;}

.green {color:#8e8506;}

.cont-table {border:2px solid #ccc; background:#fff;margin:25px 0;}
.cont-table tr {padding:10px;border-top:2px solid #ccc;}
.cont-table td {padding:10px;border-left:2px solid #ccc;}
.cont-table td:first-of-type {border-left:none #ccc;}

/********************
WORDPRESS BODY CLASSES
style a page via class
********************/
/* for sites that are read right to left (i.e. hebrew) */
/* home page */
/* blog template page */
/* archive page */
/* date archive page */
/* replace the number to the corresponding page number */
/* search page */
/* search result page */
/* no results search page */
/* individual paged search (i.e. body.search-paged-3) */
/* 404 page */
/* single post page */
/* individual post page by id (i.e. body.postid-73) */
/* individual paged single (i.e. body.single-paged-3) */
/* attatchment page */
/* individual attatchment page (i.e. body.attachmentid-763) */
/* style mime type pages */
/* author page */
/* user nicename (i.e. body.author-samueladams) */
/* paged author archives (i.e. body.author-paged-4) for page 4 */
/* category page */
/* individual category page (i.e. body.category-6) */
/* replace the number to the corresponding page number */
/* tag page */
/* individual tag page (i.e. body.tag-news) */
/* replace the number to the corresponding page number */
/* custom page template page */
/* individual page template (i.e. body.page-template-contact-php */
/* replace the number to the corresponding page number */
/* parent page template */
/* child page template */
/* replace the number to the corresponding page number */
/* if user is logged in */
/* paged items like search results or archives */
/* individual paged (i.e. body.paged-3) */
/*********************
LAYOUT & GRID STYLES
*********************/
.wrap { /*width: 85%;*/width:95%; margin: 0 auto; }

.center { text-align: center; }

.table { display: table; border-collapse: separate; }

.table-row { display: table-row; }

.table-cell { display: table-cell; vertical-align: middle; }

.table-cell.quote-man {text-align:center;min-width:171px;}
.quotes .table-cell {text-align:center;}

.disclaimer {color:#fff;font-size:.7em;line-height:1.3em;}


/*********************
BACK TO TOP
*********************/
.cd-container {
  width: 90%;
  max-width: 768px;
  margin: 2em auto;
}
.cd-container::after {
  /* clearfix */
  content: '';
  display: table;
  clear: both;
}
.cd-top {
  display: inline-block;
  height: 40px;
  width: 40px;
  position: fixed;
  bottom: 40px;
  right: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
  /* image replacement properties */
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
  background: rgba(201, 118, 68, 0.8) url('../images/cd-top-arrow.svg') no-repeat center 50%;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: opacity .3s 0s, visibility 0s .3s;
  -moz-transition: opacity .3s 0s, visibility 0s .3s;
  transition: opacity .3s 0s, visibility 0s .3s;
}
.cd-top.cd-is-visible, .cd-top.cd-fade-out, .no-touch .cd-top:hover {
  -webkit-transition: opacity .3s 0s, visibility 0s 0s;
  -moz-transition: opacity .3s 0s, visibility 0s 0s;
  transition: opacity .3s 0s, visibility 0s 0s;
}
.cd-top.cd-is-visible {
  /* the button becomes visible */
  visibility: visible;
  opacity: 1;
}
.cd-top.cd-fade-out {
  /* if the user keeps scrolling down, the button is out of focus and becomes less visible */
  opacity: .5;
}
.no-touch .cd-top:hover {
  background-color: #c97644;
  opacity: 1;
}

/*********************
LINK STYLES
*********************/
a, a:visited { color: #c97644; -webkit-transition: color .3s ease; -moz-transition: color .3s ease; -ms-transition: color .3s ease; -o-transition: color .3s ease; transition: color .3s ease; text-decoration: none; /* on hover */ /* on click */ /* mobile tap color */ }
a:hover, a:focus, a:visited:hover, a:visited:focus { color: #3e3e40; }
a:link, a:visited:link { /*
this highlights links on iPhones/iPads.
so it basically works like the :hover selector
for mobile devices.
*/ -webkit-tap-highlight-color: rgba(0, 0, 0, 0.3); }

/******************************************************************
H1, H2, H3, H4, H5 STYLES
******************************************************************/
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 { text-rendering: optimizelegibility; font-weight: 500; color: #c97644;letter-spacing:2px; /*
if you're going to use webfonts, be sure to check your weights
http://css-tricks.com/watch-your-font-weight/
*/ /* removing text decoration from all headline links */ }
h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, h4 a, .h4 a, h5 a, .h5 a { text-decoration: none; }

h1, .h1 { font-size: 2.2em; line-height: 1.333em; }

h2, .h2 { font-size: 1.75em; line-height: 1.4em; margin-bottom: 0.375em; }

h3, .h3 { font-size: 1.125em; }

h4, .h4 { font-size: 1.1em; font-weight: 700; }

h5, .h5 { font-size: 0.846em; line-height: 2.09em; text-transform: uppercase; letter-spacing: 2px; }

/*********************
HEADER STYLES
*********************/
.header { background-color: white; }

#logo { margin: 25px 0 15px; text-align: center; }
#logo a { color: white; }

#masthead { background: url("../images/masthead-bg.jpg") no-repeat bottom center; background-size: cover; clear: both; padding: 50px 0; -webkit-box-shadow: inset 0 0 5px 8px rgba(0, 0, 0, 0.2); box-shadow: inset 0 0 5px 8px rgba(0, 0, 0, 0.2); text-align: center; }
#masthead h1 { color: #f9bf12; line-height: 1.2em; max-width: 600px; text-align: center; display: block; margin: 0 auto;color:#fff;font-weight:bold;letter-spacing:1px;text-shadow: 0 0 12px rgba(0,0,0,.85);}
#masthead h1.thin {font-weight:400;}
#masthead p { color: #fff; line-height: 1.8em; text-align: center; letter-spacing: 1px; font-size: 11pt; }
#masthead .contribute h3 {color:#fff;letter-spacing:1px;font-size:1.3em;font-weight:500;}
#masthead .btn-margin {text-align:center;margin:25px auto 0;max-width:250px;}
#masthead .y-btn {padding:10px 15px;max-width:100%;color:#fff;border-color:#fff;}

.page #masthead {text-align:center;}
.page #masthead h1 {font-weight:400;}


/*********************
NAVIGATION STYLES
*********************/
/*
all navs have a .nav class applied via
the wp_menu function; this is so we can
easily write one group of styles for
the navs on the site so our css is cleaner
and more scalable.
*/
.nav { border-bottom: 0; margin: 0; font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif; /* end .menu li */ /* highlight current page */ /* end current highlighters */ }
.nav li { /*
so you really have to rethink your dropdowns for mobile.
you don't want to have it expand too much because the
screen is so small. How you manage your menu should
depend on the project. Here's some great info on it:
http://www.alistapart.com/articles/organizing-mobile/
*/ }
.nav li a { display: block; color: white; text-decoration: none; padding: 0.75em; /*
remember this is for mobile ONLY, so there's no need
to even declare hover styles here, you can do it in
the style.scss file where it's relevant. We want to
keep this file as small as possible!
*/ }
.nav li ul.sub-menu li a, .nav li ul.children li a { padding-left: 30px; }
.menu-item-has-children > a {cursor:default;}
ul.sub-menu li {margin-bottom:0;}

/* end .nav */
/*********************
POSTS & CONTENT STYLES
*********************/
.home { background: white; }
.home #main img { margin: 50px 0; }
.home .header { box-shadow: none; -webkit-box-shadow: none; -moz-box-shadow: none; }

#at-a-glance {background:#e8e5e0;padding:50px 0;text-align:center;}
#at-a-glance h1 {margin-top:0;color:#c97644;}

#and { background: #4b4547; padding:35px 0 25px; color: #fff; }

#how-it-works { padding: 50px 0 100px; background: #e8e5e0; text-align: center; border-bottom: 1px solid #e0e0e0; }
#how-it-works img { display: block; margin: 50px auto 0; }

#key-features { padding: 50px 0; /*background: white url("../images/key_features_bg.jpg") no-repeat top center; background-size: cover;*/background-color:#fff; border-top: 1px solid #efefef; }
#key-features .d-1of2 { margin: 25px 0; }
#key-features h1 { text-align: center; margin: 0 0 50px; }
#key-features h3 { font-weight: bold; max-width: 200px; line-height: 1em; font-size: 16pt; font-weight: 600; color:#8e8506; }
#key-features img { margin-right: 20px; }
#key-features .btn-margin { clear: both; text-align: center; }

#open-data-models {padding:50px 0;background:#d0cbc5;color:#535457;}


#user-stories { background: #e8e5e0; padding: 50px 0; }
#user-stories h1 { text-align: center; }
#user-stories .intro { background: url("../images/quotes.png") no-repeat center center; text-align: center; font-weight: 600; padding: 25px 0; }
#user-stories .table { margin-bottom: 25px; border-bottom: 1px solid #7e7f81; vertical-align: middle; }
#user-stories .table:last-of-type { border-bottom: none; }
#user-stories .table-cell { width: 100%; display: block; text-align: center; margin-bottom: 25px; }
#user-stories .quote-man { text-align: center; width: 100%; }
#user-stories .quote-man h3 { margin: 10px 0 20px; }

.community {text-align:center;margin-top:35px;}
.community img {display:inline;}

#use-case { padding: 50px 0; background: #fff; }
#use-case h1 { text-align: center; margin-bottom: 0; }
#use-case h3 { color: #c97644; text-align: center; font-weight: 600; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; letter-spacing: 1px; margin:15px 0; font-size: 13pt;line-height:1.3em; text-transform:uppercase;}
#use-case .number { min-height: 100px; width: 95px; vertical-align: top; }
#use-case .left img { margin-bottom: 50px; }
#use-case .table { padding: 25px 0 25px 0; }
#use-case .table:first-of-type { padding-top: 0; }
#use-case .table p { font-size: 13pt; line-height: 1.3em; font-weight: 500; }
#use-case .table p strong { font-weight: 800; }
#use-case .table p:first-of-type { margin-top: 0; }
.quotes {margin-top:50px;}
.quotes .table-cell {display:block;}

.arrow { margin: 50px 0 0; width: 100%; height: 150px; background-color: #c97644; position: relative;color:#fff; }
.arrow p { margin: 20px 25px 20px 25px; font-size: 14pt; text-align: left; line-height: 1.2em; }

#more-info { background: #4b4547; padding: 50px 0; }
#more-info p { text-align: center; }

.social-icons {text-align:center;margin-bottom:50px;}
.social-icons a {font-size:2em;color:#fff;}
.social-icons a:hover {color:#c97644;}
.social-icons a:first-child {margin-right:15px;}
.add-to-slack {margin:0 0 0 15px;}
.add-to-slack {position:relative;top:5px;}

#and .and-cell p {font-size:13pt;line-height:1.2em;}

.citation {font-size:.7em;line-height:1.5em;margin:50px 0 15px;}

#content { margin-top: 2em; }
.page #content {margin-top:0;}

.page .main {padding:50px 25px;}
.page #content h3 {color:#a3a3a1;font-weight:700;text-transform:uppercase;line-height:1.3em;font-size:1.3em;}
.page #content h4 {color:#8e8506;font-weight:400;}
.page .wrap.with-sidebar {width:100%;}
.page #content h3.green {color:#8e8506;font-weight:500;text-transform: none;}


.divTable{
	display: table;
	width: 100%;
}
.divTableRow {
	display: table-row;
}
.divTableCell {
	border-top: 1px solid #999999;
	border-right:1px solid #999;
	display: table-cell;
	padding: 3px 1%;
	font-size:12px;
}
.divTableRow .divTableCell:nth-of-type(1) {
	width:18%;
}
.divTableRow .divTableCell:nth-of-type(2) {
	width:31.5%;
}
.divTableRow .divTableCell:last-of-type {
	width:15%;
}
.divTableBody {
	display: table-row-group;
}
.tableHeading .divTableCell {
	font-weight:bold;
}
.divTableRow .divTableCell:first-of-type {
	border-left:1px solid #999;
}
.divTableRow:last-of-type .divTableCell {
	border-bottom:1px solid #999;
}
.divTableRow:nth-of-type(even) {
	background-color:rgba(232,229,224,.6);
}

.download .content-wrap {
  max-width:700px;
  border-bottom:15px solid #4b4547;
  display: block;
  margin:25px auto;
  padding:0 25px;
  font-size: 17px;
}
.download .content-wrap:first-of-type {
  border-top:15px solid #4b4547;
}
.download .content-wrap a {
  color:#4eafe7;
}

.download #content {
  margin-bottom:50px;
}
.content-wrap .indent {
  display:block;
  padding-left:40px;
  margin:15px 0;
}

.hentry { padding: .75em; margin-bottom: 1.5em; }
.hentry footer { padding: 1.5em 0; border-top: 1px solid #d6d6d6; }
.hentry footer p { margin: 0; }

/* end .hentry */
.single-title, .page-title, .entry-title { margin: 0;line-height:1.2em; }

/* want to style individual post classes? Booya! */
/* post by id (i.e. post-3) */
/* general post style */
/* general article on a page style */
/* general style on an attatchment */
/* sticky post style */
/* hentry class */
/* style by category (i.e. category-videos) */
/* style by tag (i.e. tag-news) */
/* post meta */
.byline { color: #9fa6b4; margin: 10px 0 0; font-size: 10pt; }

/* entry content */
.entry-content { padding: 1.5em 0; /*
image alignment on a screen this size may be
a bit difficult. It's set to start aligning
and floating images at the next breakpoint,
but it's up to you. Feel free to change it up.
*/ }
.entry-content ol {list-style-type:decimal;padding-left:40px;}
.entry-content ul {list-style-type:disc;padding-left:40px;}
.entry-content p { margin: 0 0 1.5em; }
.entry-content table { width: 100%; border: 1px solid #626366; margin-bottom: 1.5em; }
.entry-content table caption { margin: 0 0 7px; font-size: 0.75em; color: #9fa6b4; text-transform: uppercase; letter-spacing: 1px; }
.entry-content tr { border-bottom: 1px solid #626366; }
.entry-content tr:nth-child(even) { background-color: #f8f9fa; }
.entry-content td { padding: 7px; border-right: 1px solid #626366; }
.entry-content td:last-child { border-right: 0; }
.entry-content th { background-color: #f8f9fa; border-bottom: 1px solid #626366; border-right: 1px solid #626366; }
.entry-content th:last-child { border-right: 0; }
.entry-content blockquote { margin: 0 0 1.5em 0.75em; padding: 0 0 0 0.75em; border-left: 3px solid #2980b9; font-style: italic; color: #9fa6b4; }
.entry-content dd { margin-left: 0; font-size: 0.9em; color: #787878; margin-bottom: 1.5em; }
.entry-content img { margin: 0 0 1.5em 0; max-width: 100%; height: auto; }
.entry-content .size-auto, .entry-content .size-full, .entry-content .size-large, .entry-content .size-medium, .entry-content .size-thumbnail { max-width: 100%; height: auto; }
.entry-content pre { background: #323944; color: #f8f9fa; font-size: 0.9em; padding: 1.5em; margin: 0 0 1.5em; border-radius: 3px; }

/* end .entry-content */
.wp-caption { max-width: 100%; background: #eee; padding: 5px; /* images inside wp-caption */ }
.wp-caption img { max-width: 100%; margin-bottom: 0; width: 100%; }
.wp-caption p.wp-caption-text { font-size: 0.85em; margin: 4px 0 7px; text-align: center; }

/* end .wp-caption */
/* image gallery styles */
/* end .gallery */
/* gallery caption styles */
.tags { margin: 0; }


blockquote {font-size:11pt;}
/******************************************************************
PAGE NAVI STYLES
******************************************************************/
.pagination, .wp-prev-next { margin: 1.5em 0; }

.pagination { text-align: center; }
.pagination ul { display: inline-block; white-space: nowrap; padding: 0; clear: both; border-radius: 3px; }
.pagination li { padding: 0; margin: 0; float: left; display: inline; overflow: hidden; border-right: 1px solid #9fa6b4; }
.pagination a, .pagination span { margin: 0; text-decoration: none; padding: 0; line-height: 1em; font-size: 1em; font-weight: normal; padding: 0.75em; min-width: 1em; display: block; color: #f9bf12; }
.pagination a:hover, .pagination a:focus, .pagination span:hover, .pagination span:focus { background-color: #f9bf12; color: white; }
.pagination .current { cursor: default; color: #9fa6b4; }
.pagination .current:hover, .pagination .current:focus { background-color: transparent; color: #5c6b80; }

/* end .bones_page_navi */
/* fallback previous & next links */
.wp-prev-next .prev-link { float: left; }
.wp-prev-next .next-link { float: right; }

/* end .wp-prev-next */
/******************************************************************
COMMENT STYLES
******************************************************************/
/* h3 comment title */
#comments-title { padding: 0.75em; margin: 0; border-top: 1px solid #f8f9fa; /* number of comments span */ }

.commentlist { margin: 0; list-style-type: none; }

.comment { position: relative; clear: both; overflow: hidden; padding: 1.5em; border-bottom: 1px solid #f8f9fa; /* vcard */ /* end .commentlist .vcard */ /* end children */ /* general comment classes */ }
.comment .comment-author { padding: 7px; border: 0; }
.comment .vcard { margin-left: 50px; }
.comment .vcard cite.fn { font-weight: 700; font-style: normal; }
.comment .vcard time { display: block; font-size: 0.9em; font-style: italic; }
.comment .vcard time a { color: #9fa6b4; text-decoration: none; }
.comment .vcard time a:hover { text-decoration: underline; }
.comment .vcard .avatar { position: absolute; left: 16px; border-radius: 50%; }
.comment:last-child { margin-bottom: 0; }
.comment .children { margin: 0; /* variations */ /* change number for different depth */ }
.comment[class*=depth-] { margin-top: 1.1em; }
.comment.depth-1 { margin-left: 0; margin-top: 0; }
.comment:not(.depth-1) { margin-top: 0; margin-left: 7px; padding: 7px; }
.comment.odd { background-color: white; }
.comment.even { background: #f8f9fa; }

/* comment meta */
/* comment content */
.comment_content p { margin: 0.7335em 0 1.5em; font-size: 1em; line-height: 1.5em; }

/* end .commentlist .comment_content */
/* comment reply link */
.comment-reply-link { font-size: 0.9em; float: right; }

/* end .commentlist .comment-reply-link */
/* edit comment link */
.comment-edit-link { font-style: italic; margin: 0 7px; text-decoration: none; font-size: 0.9em; }

/******************************************************************
COMMENT FORM STYLES
******************************************************************/
.comment-respond { padding: 1.5em; border-top: 1px solid #f8f9fa; }

#reply-title { margin: 0; }

.logged-in-as { color: #9fa6b4; font-style: italic; margin: 0; }
.logged-in-as a { color: #5c6b80; }

.comment-form-comment { margin: 1.5em 0 0.75em; }

.form-allowed-tags { padding: 1.5em; background-color: #f8f9fa; font-size: 0.9em; }

/* comment submit button */
#submit { float: right; font-size: 1em; }

/* comment form title */
#comment-form-title { margin: 0 0 1.1em; }

/* cancel comment reply link */
/* logged in comments */
/* allowed tags */
#allowed_tags { margin: 1.5em 10px 0.7335em 0; }

/* no comments */
.nocomments { margin: 0 20px 1.1em; }

/*********************
SIDEBARS & ASIDES
*********************/
.widget ul li { /* deep nesting */ }

.no-widgets { background-color: white; padding: 1.5em; text-align: center; border: 1px solid #cccccc; border-radius: 2px; margin-bottom: 1.5em; }

.sidebar {margin-bottom:25px;}
.sidebar ul {list-style-type:none;padding-left:0;list-style-image:none;}

.social-sidebar {display:none;}

.downloads {background:#d0cbc5;padding:10px;}
.downloads h1 {color:#fff;text-align:center;background:#bfb8b0;padding:50px 0;margin:0;width:100%;}
.downloads ul {list-style-image:none;list-style-type:none;margin:35px 0 25px;font-size:10.5pt;line-height:1.1em;letter-spacing:0px;}
.downloads ul li {margin-bottom:25px;}
.downloads ul li a {color:#c77240;font-weight:bold;text-transform:uppercase;-webkit-transition: color .3s ease;-moz-transition: color .3s ease;-ms-transition: color .3s ease;-o-transition: color .3s ease;transition: color .3s ease;}
.downloads ul li a:hover {color:#000;}
.downloads ul .icon-keyboard_arrow_right {font-size:1.5em;position:relative;top:4px;}

/*********************
FOOTER STYLES
*********************/
.footer { clear: both; background-color: #363132; color: #f8f9fa; min-height: 50px; }

/*
if you checked out the link above:
http://www.alistapart.com/articles/organizing-mobile/
you'll want to style the footer nav
a bit more in-depth. Remember to keep
it simple because you'll have to
override these styles for the desktop
view.
*/
/* end .footer-links */
/*********************
LARGER MOBILE DEVICES
This is for devices like the Galaxy Note or something that's
larger than an iPhone but smaller than a tablet. Let's call them
tweeners.
*********************/
@media only screen and (min-width: 481px) { /****************************************************************** Site Name: Author:  Stylesheet: 481px and Up Stylesheet  This stylesheet is loaded for larger devices. It's set to 481px because at 480px it would load on a landscaped iPhone. This isn't ideal because then you would be loading all those extra styles on that same mobile connection.  A word of warning. This size COULD be a larger mobile device, so you still want to keep it pretty light and simply expand upon your base.scss styles.  *****************************************************************/
  /* IMPORTANT NOTE ABOUT SASS 3.3 & UP You can't use @extend within media queries anymore, so just be aware that if you drop them in here, they won't work. */
  /********************* NAVIGATION STYLES ********************/
  /* .menu is clearfixed inside mixins.scss */
  .menu { /* end .menu ul */ }
  .menu ul { /* end .menu ul li */ /* highlight current page */ /* end current highlighters */ }
  .menu ul li { /*
plan your menus and drop-downs wisely.
*/ }
  .menu ul li a { /*
you can use hover styles here even though this size
has the possibility of being a mobile device.
*/ }
  /* end .menu */
  /********************* POSTS & CONTENT STYLES ********************/
  #user-stories .table-cell { width: auto; display: table-cell; text-align: left; }
  #user-stories .quote-man { text-align: center; width: 200px; }
  .arrow { margin: 50px 0 0; width: 85%; height: 130px; background-color: #c97644; position: relative; }
  .arrow p { margin: 20px 25px 20px 25px; font-size: 14pt; text-align: left; line-height: 1.2em; }
  .arrow:after { content: ''; position: absolute; top: 0px; left: 100%; width: 0; height: 0; border: 65px solid transparent; border-left: 55px solid #f9bf12; }
  /* entry content */
  .entry-content { /* at this larger size, we can start to align images */ }
  .entry-content .alignleft, .entry-content img.alignleft { margin-right: 1.5em; display: inline; float: left; }
  .entry-content .alignright, .entry-content img.alignright { margin-left: 1.5em; display: inline; float: right; }
  .entry-content .aligncenter, .entry-content img.aligncenter { margin-right: auto; margin-left: auto; display: block; clear: both; }
  /* end .entry-content */
  /********************* FOOTER STYLES ********************/
  /* check your menus here. do they look good? do they need tweaking? */
  /* end .footer-links */ }
/*********************
TABLET & SMALLER LAPTOPS
This is the average viewing window. So Desktops, Laptops, and
in general anyone not viewing on a mobile device. Here's where
you can add resource intensive styles.
*********************/
@media only screen and (min-width: 768px) { /****************************************************************** Site Name: Author:  Stylesheet: Tablet & Small Desktop Stylesheet  Here's where you can start getting into the good stuff. This size will work on iPads, other tablets, and desktops. So you can start working with more styles, background images, and other resources. You'll also notice the grid starts to come into play. Have fun!  *****************************************************************/
  /********************* GENERAL STYLES ********************/
  /********************* LAYOUT & GRID STYLES ********************/
  .wrap { width: 760px; }
  .cd-top { right: 20px;  bottom: 20px; }
  .social-sidebar {display:block;position: fixed;width: 50px;right: 0;top: 50%;margin-top: -100px;background: #c97644;z-index: 100;padding: 5px 0 5px 10px;opacity: 0.5;transition: width .2s linear;-moz-transition: width .2s linear;-webkit-transition: width .2s linear;}
  .social-sidebar a {color:#fff;font-size:2em;display:block;}
  .social-sidebar a:hover {color:#a04209;}
  .social-sidebar:hover {opacity:1;width:60px;}
  /********************* HEADER STYLES ********************/

  #masthead .wrap { text-align: left; position:relative;min-height:550px;}
  .contribute {position:absolute;bottom:0;right:0;max-width:500px;color:#fff;text-align:center;}
  #masthead h1 { text-align: left; margin: 0; }
  #masthead p { text-align: left; }
  .page #masthead .wrap {min-height:250px;}
  .page #masthead h1 {text-align:center;margin:0 auto;}


  /* end .nav */


  /********************* CONTENT ********************/
  #how-it-works { padding: 100px 0; text-align: left; }
  #how-it-works img { display: block; margin: 0 auto; }
  #key-features .d-1of2:nth-of-type(2n+1) { clear: both; }
  #key-features .d-1of2 p { margin-right: 35px; }
  #use-case .table { padding: 25px 0 25px 50px; }
  #use-case .table:first-of-type { padding-top: 0; }
  #use-case .table:last-of-type { padding-bottom: 0; }
  #use-case .left img { margin-bottom: 0; padding-right: 25px; }
  #use-case h3 {margin: 0 0 15px;text-align:left;}
  .quotes .table-cell {display:table-cell;text-align:left;}  .table-cell.quote-man {padding-right:35px;text-align:center;}
  .table-cell.quote-man img {text-align:center;}
  .arrow { height: 80px; }
  .arrow p { margin: 20px 85px 20px 25px; }
  .arrow:after { border: 40px solid transparent; border-left: 40px solid #c97644; }
  .hentry { margin-right: 50px; }


	.divTableCell {
		font-size:11pt;
	}
	.divTableRow .divTableCell:nth-of-type(1) {
		width:18%;
	}
	.divTableRow .divTableCell:nth-of-type(2) {
		width:31.5%;
	}
	.divTableRow .divTableCell:last-of-type {
		width:15%;
	}
  /********************* SIDEBARS & ASIDES ********************/
  .sidebar { margin-top: 0; }
  .widgettitle { border-bottom: 2px solid #444; margin-bottom: 0.75em; }
  .widget { padding: 0 10px; margin: 2.2em 0; }
  .widget ul li { margin-bottom: 0.75em; /* deep nesting */ }
  .widget ul li ul { margin-top: 0.75em; padding-left: 1em; }

  /********************* FOOTER STYLES ********************/
  /* you'll probably need to do quite a bit of overriding here if you styled them for mobile. Make sure to double check these! */
  .footer-links ul li { /*
be careful with the depth of your menus.
it's very rare to have multi-depth menus in
the footer.
*/ }
.y-btn {display:inline-block;margin:0;}
/*.y-btn:first-of-type {margin-right:15px;}*/
  /* end .footer-links */ }
/*********************
DESKTOP
This is the average viewing window. So Desktops, Laptops, and
in general anyone not viewing on a mobile device. Here's where
you can add resource intensive styles.
*********************/
@media only screen and (min-width: 1030px) { /****************************************************************** Site Name: Author:  Stylesheet: Desktop Stylsheet  This is the desktop size. It's larger than an iPad so it will only be seen on the Desktop.  *****************************************************************/
  #logo { float: left; text-align: left; }
  .wrap, .page .wrap.with-sidebar { width: 1040px; }
  .cd-top { height: 60px; width: 60px; right: 30px;bottom: 30px; }
  .nav li a { padding: .75em 1.6em; }
  .nav li:last-child a {padding-right:0;}
  /********************* NAVIGATION STYLES ********************/
  .nav { border: 0; float: right; margin-top: 35px; /* end .menu ul li */ /* highlight current page */ /* end current highlighters */ }
  .nav ul { background: #e8e5e0; margin-top: 0; }
  .nav li { float: left; position: relative; /*
plan your menus and drop-downs wisely.
*/ /* showing sub-menus */ }
  .nav li a { border-bottom: 0; color: #626366; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 700; text-transform: uppercase; font-size: 10.2pt; letter-spacing: 1px; padding: .75em 1.2em; /*
you can use hover styles here even though this size
has the possibility of being a mobile device.
*/ }
  .nav li a:hover, .nav li a:focus { color: #c97644; }
  .nav li.active > a {color:#c97644;}
  .nav li ul.sub-menu, .nav li ul.children { width:235px;margin-top: 0; position: absolute; visibility: hidden;opacity:0; z-index: 8999;padding-left:0; -webkit-transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;-moz-transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;-ms-transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s; -o-transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;  -webkit-transform: translateY(-2em); -moz-transform: translateY(-2em); -o-transform: translateY(-2em); -ms-transform: translateY(-2em);translateY(-2em);}

  .nav li ul.sub-menu li a, .nav li ul.children li a { float:none;padding-left: 10px; border-right: 0; display: block; width: 235px; border-bottom: 1px solid #ccc; line-height: 1.4em;}
  .nav li ul.sub-menu li a:hover, .nav li ul.children li a:hover {color:#c97644;}
  .nav li ul.sub-menu li:last-child a, .nav li ul.children li:last-child a { border-bottom: 0; }
  .nav li ul.sub-menu li ul, .nav li ul.children li ul { top: 0; left: 100%; }
  .nav li:hover > ul { top: auto; visibility: visible; opacity:1;-moz-transform: translateY(0%);-webkit-transform: translateY(0%); -o-transform: translateY(0%);-ms-transform: translateY(0%); transform: translateY(0%); -webkit-transition-delay: 0s, 0s, 0.3s;-moz-transition-delay: 0s, 0s, 0.3s;-o-transition-delay: 0s, 0s, 0.3s;transition-delay: 0s, 0s, 0.3s; /* this removes the transition delay so the menu will be visible while the other styles transition */}
.nav li ul.sub-menu.com-sm li a {
	border-bottom:none;
}

.under-dev {
  background:#aea698;
  color:#fff;
  font-weight:700;
  text-transform: uppercase;
  padding:10px;
  width:100%;
  border-bottom:1px solid #ccc;
  line-height: 1.4em;
  font-size:10.2pt;
  letter-spacing: 1px;
  text-align: center;
}
 .dropmenu-head {
 	float: none;
	border-right: 0;
	display: block;
	width: 235px;
	text-transform:uppercase;
	color:#666;
	padding:0 10px 0 15px;
	border-bottom:none;
	font-size:.95em;
}
.sub-menu.com-sm .dropmenu-head:first-child {
	padding-top:10px;
}
.sub-menu.com-sm .mail,
.sub-menu.com-sm .slack,
.sub-menu.com-sm .github,
.sub-menu.com-sm .twitter-icon,
.sub-menu.com-sm .jira {
	background-position:left 15px center;
}
.nav li ul.sub-menu.com-sm li .mail,
.nav li ul.sub-menu.com-sm li .slack,
.nav li ul.sub-menu.com-sm li .github,
.nav li ul.sub-menu.com-sm li .twitter-icon,
.nav li ul.sub-menu.com-sm li .jira {
	padding-left:40px;
}
.sub-menu.com-sm li a {
	padding:5px 10px 5px 25px;
}
li.divider {
	border-bottom:1px solid #ccc;
	width:100%;
	margin:10px 0 !important;
}
.nav li ul.sub-menu.com-sm li {
	margin-bottom:0;
}
.nav li ul.sub-menu.com-sm li a {
	padding-left:15px;
}
  img.oniguy { margin-top: 75px; }
  .page #masthead .wrap {min-height:360px;display: flex;  justify-content: flex-end;  align-items: center;  align-content: flex-end;text-align:right;}
  #and { display: table; border-collapse: separate; width: 100%; }
  #and .and-row { display: table-row; }
  #and .and-cell { display: table-cell; vertical-align: middle; }
  #and p { margin: 0; }
  #and img { margin-right: 35px; }
  #use-case .table:last-of-type { padding-bottom: 125px; }
  .arrow { height: 80px; }
  .arrow p { margin: 30px 60px 20px 25px; }
  .arrow:after { border: 40px solid transparent; border-left: 40px solid #c97644; }

  .page .wrap.with-sidebar {display:flex;}
  .page .downloads {margin-left:50px;} }

/*********************
LARGE VIEWING SIZE
This is for the larger monitors and possibly full screen viewers.
*********************/
@media only screen and (min-width: 1240px) {
  #user-stories .wrap {width:1140px;}
}
/*********************
RETINA (2x RESOLUTION DEVICES)
This applies to the retina iPhone (4s) and iPad (2,3) along with
other displays with a 2x resolution. You can also create a media
query for retina AND a certain size if you want. Go Nuts.
*********************/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { /****************************************************************** Site Name:  Author:   Stylesheet: Retina Screens & Devices Stylesheet  When handling retina screens you need to make adjustments, especially if you're not using font icons. Here you can add them in one neat place.  *****************************************************************/
  /*   EXAMPLE  Let's say you have an image and you need to make sure it looks ok on retina screens. Let's say we have an icon which dimension are 24px x 24px. In your regular stylesheets, it would look something like this:  .icon { 	width: 24px; 	height: 24px; 	background: url(../css/img/test.png) no-repeat; }  For retina screens, we have to make some adjustments, so that image doesn't look blurry. So, taking into account the image above and the dimensions, this is what we would put in our retina stylesheet:  .icon { 	background: url(../css/img/test@2x.png) no-repeat; 	background-size: 24px 24px; }  So, you would create the same icon, but at double the resolution, meaning  it would be 48px x 48px. You'd name it the same, but with a @2x at the end (this is pretty standard practice). Set the background image so it matches the original dimensions and you are good to go.   */ }
/*********************
PRINT STYLESHEET
Feel free to customize this. Remember to add things that won't make
sense to print at the bottom. Things like nav, ads, and forms should
be set to display none.
*********************/
@media print { /****************************************************************** Site Name: Author:  Stylesheet: Print Stylesheet  This is the print stylesheet. There's probably not a lot of reasons to edit this stylesheet. If you want to though, go for it.  *****************************************************************/
  * { background: transparent !important; color: black !important; text-shadow: none !important; filter: none !important; -ms-filter: none !important; }
  a, a:visited { color: #444 !important; text-decoration: underline; }
  a:after, a:visited:after { content: " (" attr(href) ")"; }
  a abbr[title]:after, a:visited abbr[title]:after { content: " (" attr(title) ")"; }
  .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
  thead { display: table-header-group; }
  tr, img { page-break-inside: avoid; }
  img { max-width: 100% !important; }
  @page { margin: 0.5cm; }
  p, h2, h3 { orphans: 3; widows: 3; }
  h2, h3 { page-break-after: avoid; }
  .sidebar, .page-navigation, .wp-prev-next, .respond-form, nav { display: none; } }
