@charset "UTF-8";

/**
* Built using Imarc Boilerplate v2.1
*
* Copyright 2016 Imarc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* = Table of Contents =
* Variables
* Mixins
* Base
* Layout
* Typography
* Forms
* Iconography
* Messaging
* Tables
* Section Specific
* Page Specific
* Components
* Media Queries
* Print Styles
*/

/**
 * _components.scss contains solely the mixin definitions for components.
 *
 * + This file should not depend on styles.scss; we should be able to use
 *   include this file without including styles.scss.
 * + This file should not generate any CSS on it's own; it should only contain
 *   mixin and/or function definitions.
 */

/**
 * Media query breakpoints
 */

/**
*
* ACCORDION requires the accordion.plugin.js file. Within the .accordion
* class each accordion item requires a div wrapper. Within the div wrapper
* there is a .header class and a .content class. The .header class is the
* clickable element that will reveal what is hidden in the .content class.
* By default .content is hidden by javascript just in case javascript is not available.
*
* Emmet: .accordion>div>(.header{header}+.content>{lorem ipsum})
*
*/

/**
 * BACKGROUND VIDEO plays a video (without sound) in the background of an element.
 * Emmet: .backgroundvideo>(.panel>div>h1+p)+video>source[src]
 */

/**
 * CAROUSEL uses Slick to create a carousel. It defaults to a rather
 * basic, one-slide-at-a-time implementation with dots, but slick supports a
 * good deal of configuration including showing multiple slides, breakpoints,
 * syncing between slides, and plenty of javascript events and methods for
 * integration.
 *
 * The implementation on Boilerplate is using a CDN to provide
 *
 * + slick.css
 * + slick-theme.css
 * + slick.min.js
 *
 * See http://kenwheeler.github.io/slick/ for more information.
 *
 * The carousel() mixin should be included on a parent element that contains
 * one div per slide. No additional classes are necessary – the slick classes
 * referenced are added dynamically by slick.
 *
 * <div class="carousel">
 *     <div>
 *         <h2>A slide!</h2>
 *         <p>Some text.</p>
 *     </div>
 * </div>
 *
 * Emmet: .carousel>div*3>h2+p
 *
 * While there's more information in slick's documentation, .slick-slide wraps
 * slides while .slick-next and .slick-prev are used for the next/previous
 * arrows.
 */

/**
 * The COLUMNS mixin makes it so that immmediate child elements appear as
 * columns. It is responsive, allowing you to specify the media query at which
 * to switch the layout from stacking to columns.
 *
 * Additionally, it assumes the use of <hr> elements to create visual gutters
 * that are only visible while displayed as columns.
 *
 * <div class="columns">
 *     <div>
 *         <h2>A column</h2>
 *     </div>
 *     <hr />
 *     <div>
 *         <h2>Another column</h2>
 *     </div>
 * </div>
 *
 * Emmet: .columns>div+(hr+div)*2
 */

/**
 * The DOSSIER mixin displays an individual’s biography and photograph.
 *
 * Emmet: .dossiers>div>(.photo>img^.bio>h2{Lorem Ipsum}+p.title{Vice President}+p{Lorem20})
 */

/**
 * DROPDOWN
 * The DROPDOWN mixin allows for dropdown menus. By default, a single
 * column dropdown is used. It is positioned to its parent.
 *
 * Emmet: nav.primary>ul>li>a{link name}+.dropdown>.menu>ul>li>(a{link name})*3
 */

/**
 * DROPDOWN (mega)
 * The DROPDOWN (mega) mixin allows for full-width mega dropdown
 * menus. Call this mixin on a list item rather than nav.primary.
 * The menu is positioned to header.primary instead of its parent
 * list item.
 *
 * Emmet: nav.primary>ul>li>a{link name}+.dropdown>.menu(div*3)
 */

/**
 * FEATURES house three features in one row. Powered by flexbox,
 * this allows for a bottom alignment of each feature’s anchor. Use the
 * <code>$gutter</code> variable to pass you preferred gutter width.
 *
 * Emmet: .features>(div>(.icon>img)+h4+p+a)*3
 */

/**
 * The FOOTER mixin is a basic implementation of a footer with the company logo,
 * copyright, simple navigation (as opposed to a "super footer"), legal links,
 * social icons, and contact information.
 *
 * Emmet: footer.primary>(.container>div>(div.branding>(a>img)+p{123 Main Street})+(nav>ul>(li>a{Link})*4)+(div>ul.social>li>a>i.fa.fa-facebook))+.legal>p{Lorem}+a{Terms}
 */

/**
 * The LOGIN mixin is a basic implementation of a login module that includes a
 * username input, password input, submit button, forgot password link, and
 * remember me checkbox
 *
 * Emmet: .login>form>(div.text>label{Username}+input)+(div.password>label{Password}+input[type="password"])+div.actions>(.submit>button{Login})+(label>input[type="hidden"]+input[type="checkbox"])+a{Forgot Your Password?}
 */

/**
 * Mobile Navigation
 *
 * Emmet
 */

/**
 * PAGINATION
 *
 * Emmet: nav.pagination>ul>(li.previous>a{Previous})+(li*2>a)+(li.active>a)+(li*2>a)+li.next>a{Next}
 */

/**
 * LISTING shows a listing of entries. It includes an optional search form with filters.
 * Remove the search form elements for a simple list.
 *
 * Emmet: .listing>(form>.search>(.text>label+input^.submit>label+input[type="submit"]))+p.guide{Showing 10 of 20}+ul>li>a>h2{Listing headline}
 */

/**
 * The STICKY-HEADER mixin works with js (sticky-header.plugin.js) to hide the
 * header as you scroll down, and show it as you scroll back up. This is
 * responsive as the "top" value is dynamically set in the
 * js based on the height of the header. Top padding is also added
 * to the body dynamically via js so that the header doesn't overlap any
 * content.
 *
 * Emmet: header.primary
 *
 **/

/**
 * TABS
 *
 * Emmet: .tabs>(div>(.icon>img)+h4+p+a)*3
 */

/**
* The TESTIMONIAL mixin is a basic implementation of a testimonial design.
* Emmet: div.testimonial>div.container>blockquote+p
* To use the TESTIMONIAL WITH ASSET component, you simply need to add additional html markup, see emmet below.
* Emmet: div.testimonial.asset>div.container>(div>img)+blockquote+p
*/

/**
 *  Tiles helps you create an equal-width column grid layout without the use of row wrappers.
 *  Tiles is similar to the Features component, expect that Tiles’s items can wrap.
 *  Powered by flexbox, you can pass in a $gutter width and $column amount. Note that the
 *  specified $column amount only is respected at the large breakpoint. Tiles will automatically
 *  two-up your items at the medium breakpoint, and stack them at the small breakpoint.
 *
 *
 * Emmet: .tiles>.tiles
 *
 **/

/* = Variables = */

/* Grays */

/* The brand colors (name them the color) */

/* Messaging colors */

/* Applied colors */

/* Social Network Colors */

/* Breakpoint values */

/* = Mixins = */

/* = Base = */

/* Not Included:
 *   - bi-directional elements: bdi, bdo
 *   - ruby elements: data, output, rp, rt, rtc, ruby, samp, time, var
 *   - typographical elements: del, dfn, ins, kbd, mark, s, small, wbr
 *   - HTML5 elements: col, colgroup, details, dialog, map, menu, menuitem, summary
 */

a,
abbr,
address,
article,
aside,
audio,
b,
blockquote,
body,
button,
canvas,
caption,
cite,
code,
datalist,
dd,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
hr,
i,
iframe,
img,
input,
label,
legend,
li,
main,
meter,
nav,
object,
ol,
option,
p,
pre,
progress,
q,
section,
select,
span,
strong,
sub,
sup,
table,
tbody,
td,
textarea,
tfoot,
th,
thead,
tr,
u,
ul,
video {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article,
aside,
audio,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
video {
  display: block;
}

html {
  background-color: #000;
  color: #191919;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 16px;
  letter-spacing: 1px;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body {
  background-color: #000;
  color: #fff;
  min-width: 300px;
}

img {
  border: 2px solid #fff;
  box-shadow: 5px 5px 0px rgba(255, 255, 255, 0.5);
  max-width: 100%;
  vertical-align: middle;
}

figcaption {
  color: #DDD;
  font-style: italic;
  margin-top: 0.5rem;
  text-align: center;
}

::-moz-selection {
  background: #e5e5e5;
}

::selection {
  background: #e5e5e5;
}

::-moz-selection {
  background: #e5e5e5;
}

/* = Layout = */

.group::before,
.group::after {
  content: "";
  display: table;
}

.group::after {
  clear: both;
}

.container {
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
  padding-left: 1rem;
  padding-right: 1rem;
  position: relative;
}

.columns > hr {
  border: 0;
  display: none;
}

@media only screen and (min-width: 669px) {
  .columns {
    display: table;
    table-layout: fixed;
    width: 100%;
  }

  .columns > * {
    display: table-cell;
    vertical-align: top;
  }

  .columns > hr {
    display: table-cell;
    width: 1rem;
  }
}

.carousel .slick-slide {
  color: #FFF;
  height: auto;
  padding: 3rem;
}

.carousel .slick-prev,
.carousel .slick-next {
  z-index: 1;
}

.carousel .slick-prev {
  left: 2rem;
}

.carousel .slick-next {
  right: 2rem;
}

.wrapper {
  overflow: hidden;
}

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

header.primary {
  background-color: #191919;
  padding: 1rem 0;
}

header.primary .container {
  position: static;
}

header.primary .menu-toggle {
  background: none;
  height: 3rem;
  position: absolute;
  right: 0.5rem;
  top: 3rem;
  width: 3rem;
  z-index: 2000;
}

header.primary .menu-toggle:focus,
header.primary .menu-toggle:hover {
  background: none;
}

header.primary .menu-toggle .menu-bar {
  border-radius: 0;
  display: block;
  left: 0;
  position: absolute;
  transition: 0.5s;
  width: 100%;
}

header.primary .menu-toggle .menu-bar-middle {
  height: 5px;
  background-color: #626262;
  margin-top: 10px;
  margin-bottom: 10px;
  top: 3px;
}

header.primary .menu-toggle .menu-bar-top {
  border: 5px solid #626262;
  border-bottom: none;
  top: 0;
}

header.primary .menu-toggle .menu-bar-bottom {
  border: 5px solid #626262;
  border-top: none;
  top: 26px;
}

header.primary .menu-toggle.open .menu-bar-top {
  -webkit-transform: rotate(45deg) translate(8px, 8px);
          transform: rotate(45deg) translate(8px, 8px);
  transition: 0.5s;
}

header.primary .menu-toggle.open .menu-bar-middle {
  -webkit-transform: translate(230px);
          transform: translate(230px);
  transition: 0.1s ease-in;
  opacity: 0;
}

header.primary .menu-toggle.open .menu-bar-bottom {
  -webkit-transform: rotate(-45deg) translate(8px, -7px);
          transform: rotate(-45deg) translate(8px, -7px);
  transition: 0.5s;
  top: 22px;
}

.branding a,
.branding img {
  border: none;
  box-shadow: none;
  display: block;
  max-width: 150px;
}

nav::before,
nav::after {
  content: "";
  display: table;
}

nav::after {
  clear: both;
}

nav ul {
  list-style: none;
  margin: 0;
  padding-left: 0;
  text-align: right;
}

nav ul li::before {
  display: none;
}

nav a {
  color: #FFF;
  display: block;
  padding: 0 0.5rem;
}

nav.primary {
  margin-bottom: 0;
}

nav.primary > ul li {
  font-size: 1.5rem;
  line-height: 1;
  margin-bottom: 2rem;
  text-align: right;
}

nav.primary > ul li a {
  color: #fff;
  display: inline-block;
  padding: 1rem 1.5rem;
  position: relative;
  transition: color 0.2s ease-in-out;
  z-index: 20;
}

nav.primary > ul li a::after {
  background: #DDD;
  content: "";
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  transition: width 0.2s ease-in-out;
  width: 2px;
  z-index: -1;
}

nav.primary > ul li.active > a,
nav.primary > ul li:hover > a {
  color: #0e173d;
}

nav.primary > ul li.active > a::after,
nav.primary > ul li:hover > a::after {
  width: 100%;
}

.utilities nav.utility {
  margin-bottom: 0.4rem;
}

.utilities nav.utility ul {
  text-align: center;
}

.utilities nav.utility li {
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 1.5rem;
  text-transform: none;
}

.utilities nav.utility a:hover {
  color: #808080;
}

nav.utility {
  margin-bottom: 0.7rem;
}

nav.utility a {
  font-size: 0.8rem;
}

nav.secondary .button.alt {
  display: none;
  border-color: #fff;
  color: #fff;
  padding: 1rem 1.5rem;
}

nav.secondary .button.alt:hover {
  background: #fff;
  color: #0e173d;
}

nav.secondary .contact {
  font-size: 0.825rem;
}

nav.secondary .contact a {
  display: inline-block;
  padding: 0;
}

nav.secondary .contact span {
  display: inline-block;
  padding: 0.5rem 0.5rem 0;
}

nav.secondary .contact span.address {
  border-top: 1px solid #fff;
  display: block;
  margin-top: 0.5rem;
  padding-top: 0.5rem;
}

.mobile {
  background-color: rgba(41, 41, 41, 0.95);
  bottom: 0;
  font-family: "Sanchez", serif;
  font-size: 3.75rem;
  height: 100%;
  opacity: 0;
  overflow-y: auto;
  padding: 8.25rem 1rem 0;
  position: fixed;
  text-transform: uppercase;
  top: 0;
  transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  transition: transform 0.25s, -webkit-transform 0.25s;
  width: 100%;
  z-index: 1000;
}

.mobile.left {
  left: 0;
  right: auto;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

.mobile.right {
  left: auto;
  right: 0;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.mobile.open {
  -webkit-transform: translateX(0);
          transform: translateX(0);
  transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  transition: transform 0.25s, -webkit-transform 0.25s;
}

.mobile.init {
  display: block;
  opacity: 1;
}

.mobile nav.utility ul li a {
  padding: 0.75rem 0;
}

.mobile ul {
  padding-left: 0;
}

.mobile ul li {
  margin-bottom: 0;
  text-align: right;
}

.mobile ul li a {
  color: #fff;
  display: block;
  padding: 1rem 0;
}

.mobile ul li i.fa {
  display: inline-block;
}

@media only screen and (min-width: 669px) {
  .mobile {
    padding: 8.25rem 2rem 0;
    width: 30%;
  }

  .mobile.open.left {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }

  .mobile.open.right {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
  }
}

.header-content > .dropdown {
  background-color: rgba(41, 41, 41, 0.95);
  bottom: 0;
  font-family: "Sanchez", serif;
  font-size: 3.75rem;
  height: 100%;
  opacity: 0;
  overflow-y: auto;
  padding: 8.25rem 1rem 0;
  position: fixed;
  text-transform: uppercase;
  top: 0;
  transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  transition: transform 0.25s, -webkit-transform 0.25s;
  width: 100%;
  z-index: 1000;
  z-index: 1001;
  background: #262626;
}

.header-content > .dropdown.left {
  left: 0;
  right: auto;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

.header-content > .dropdown.right {
  left: auto;
  right: 0;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.header-content > .dropdown.open {
  -webkit-transform: translateX(0);
          transform: translateX(0);
  transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  transition: transform 0.25s, -webkit-transform 0.25s;
}

.header-content > .dropdown.init {
  display: block;
  opacity: 1;
}

.header-content > .dropdown nav.utility ul li a {
  padding: 0.75rem 0;
}

.header-content > .dropdown ul {
  padding-left: 0;
}

.header-content > .dropdown ul li {
  margin-bottom: 0;
  text-align: right;
}

.header-content > .dropdown ul li a {
  color: #fff;
  display: block;
  padding: 1rem 0;
}

.header-content > .dropdown ul li i.fa {
  display: inline-block;
}

@media only screen and (min-width: 669px) {
  .header-content > .dropdown {
    padding: 8.25rem 2rem 0;
    width: 30%;
  }

  .header-content > .dropdown.open.left {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }

  .header-content > .dropdown.open.right {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
  }
}

.header-content > .dropdown.sub-menu {
  z-index: 1002;
  background: #333333;
}

.desktop {
  display: none;
  flex-flow: column wrap;
  align-items: flex-end;
  justify-content: space-between;
  flex-basis: 80%;
  max-width: 80%;
}

.desktop nav.primary {
  flex-basis: 70%;
  max-width: 70%;
  align-self: flex-start;
}

.desktop .utilities {
  flex-basis: 30%;
  max-width: 30%;
}

.header-content {
  align-items: center;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}

form.search {
  display: flex;
}

form.search .text,
form.search .submit {
  margin-bottom: 0;
}

form.search .text {
  width: 100%;
}

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

form.search input {
  border: none;
  width: 100%;
}

.torso {
  padding-bottom: 0;
}

.torso::before,
.torso::after {
  content: "";
  display: table;
}

.torso::after {
  clear: both;
}

main section {
  padding: 1.5rem 1rem;
}

aside.primary {
  margin-bottom: 2rem;
}

footer.primary {
  background-color: #191919;
  color: #808080;
  font-size: 0.9rem;
  padding-bottom: 1rem;
  padding-top: 1rem;
  text-align: center;
}

footer.primary nav {
  margin-bottom: 1rem;
}

footer.primary p {
  margin: 0;
}

footer.primary a {
  color: #FFF;
}

footer.primary nav li {
  display: inline-block;
  margin: 0 0.5rem;
}

footer.primary .location {
  text-align: center;
}

footer.primary .address {
  margin-bottom: 0.875rem;
}

footer.primary .copyright {
  font-size: 0.65rem;
  margin-bottom: 0.875rem;
  opacity: 0.5;
}

.social {
  list-style: none;
  margin: 0;
  padding-left: 0;
  margin-bottom: 1rem;
}

.social li::before {
  display: none;
}

.social li {
  display: inline-block;
  font-size: 22px;
  margin-bottom: 0;
  margin-right: 0.4rem;
}

.social a:hover {
  opacity: 0.7;
}

/* = Typography = */

h1,
h2,
h3,
h4,
h5 {
  font-family: "Sanchez", serif;
  line-height: 1.2;
  margin-bottom: 2rem;
  text-align: center;
  text-transform: uppercase;
}

h1 {
  font-size: 1.75rem;
}

h2 {
  font-size: 2.125rem;
}

h3 {
  font-size: 1.75rem;
  color: #939598;
}

h4 {
  font-size: 1.25rem;
}

h5 {
  font-size: 1.125rem;
}

strong {
  font-weight: bold;
}

em {
  font-style: italic;
}

sup {
  color: #808080;
  font-size: 0.875rem;
  vertical-align: super;
}

.intro {
  color: #DDD;
  margin: 0 auto;
  max-width: 700px;
  text-align: center;
}

.intro h4 {
  margin-bottom: 0.5rem;
}

.intro p {
  font-size: 1.5rem;
  margin-bottom: 0.8em;
}

.guide {
  color: #808080;
  font-size: 1.25rem;
}

.meta {
  color: #808080;
}

.note {
  color: #808080;
  font-size: 0.975rem;
}

hr {
  border: 0;
  border-top: 1px solid #808080;
  display: block;
  height: 0;
  margin: 2em auto 3em;
  width: 100%;
}

a {
  color: #FFF;
  cursor: pointer;
  text-decoration: none;
}

a:hover,
a:active {
  color: #5e699d;
}

a:focus {
  outline: thin dotted;
}

a.disabled,
a[disabled] {
  color: #cccccc;
  cursor: default;
  pointer-events: none;
}

p,
ol,
ul,
dl {
  margin-bottom: 2rem;
}

ol,
ul {
  padding-left: 2rem;
}

ol li,
ol dt,
ol dd,
ul li,
ul dt,
ul dd {
  margin-bottom: 0.5em;
}

ul {
  list-style: disc;
}

dt {
  font-weight: bold;
  padding-left: 0.5em;
}

dd {
  padding-left: 2em;
}

pre {
  background-color: #4A4A4A;
  padding: 1em;
  white-space: pre-wrap;
  word-wrap: break-word;
}

code {
  color: #FBCE78;
  font-family: "Consolas", monospace;
  padding: 2px 4px;
}

/* = Forms = */

button,
input,
optgroup,
select,
textarea {
  font: inherit;
  margin: 0;
}

.button,
.checkboxes,
.file,
.password,
.radios,
.reset,
.select,
.submit,
.text,
.textarea {
  margin-bottom: 2rem;
}

label {
  cursor: pointer;
  display: block;
  font-weight: bold;
  margin-bottom: 0.5em;
}

.required {
  color: #CE2A2A;
}

fieldset .help {
  color: #808080;
  display: block;
  font-size: 0.8rem;
  margin: 0;
}

input[type=date],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=text],
input[type=time],
input[type=url],
input[type=week],
textarea {
  border: 1px solid #e5e5e5;
  box-sizing: border-box;
  color: #191919;
  display: block;
  font-family: "Open Sans", Arial, sans-serif;
  margin: 0;
  padding: 0.4em 0.6em;
  width: 100%;
}

::-webkit-input-placeholder {
  color: #4A4A4A;
}

::ms-input-placeholder {
  color: #4A4A4A;
}

::-moz-placeholder {
  color: #4A4A4A;
}

::-placeholder {
  color: #4A4A4A;
}

.multiple select {
  padding-left: 5px;
  padding-right: 10px;
}

textarea {
  height: 8em;
  overflow: auto;
  resize: vertical;
}

.radio,
.checkbox {
  font-weight: normal;
}

input[type=checkbox],
input[type=radio] {
  padding: 0;
}

a.button {
  background-color: #fff;
  border: 3px solid transparent;
  color: #0e173d;
  display: inline-block;
  font-family: "Sanchez", serif;
  font-weight: bold;
  padding: 1rem 1.5rem;
  text-align: center;
  text-transform: uppercase;
  vertical-align: top;
  transition: all 0.2s;
  margin-bottom: 0;
}

a.button:hover,
a.button:focus {
  background-color: rgba(255, 255, 255, 0);
  border-color: #fff;
  color: #FFF;
}

a.button.disabled,
a.button[disabled] {
  background-color: #8c8c8c;
  color: #cccccc;
  pointer-events: none;
}

a.button.alt {
  background: none;
  padding: 2rem;
  border: 2px solid #0e173d;
}

a.button.alt:hover {
  background-color: rgba(13, 22, 64, 0.75);
}

button:not(.link),
input[type=button]:not(.link),
input[type=reset]:not(.link),
input[type=submit]:not(.link) {
  background-color: #fff;
  border: 3px solid transparent;
  color: #0e173d;
  display: inline-block;
  font-family: "Sanchez", serif;
  font-weight: bold;
  padding: 1rem 1.5rem;
  text-align: center;
  text-transform: uppercase;
  vertical-align: top;
  transition: all 0.2s;
  border: none;
  cursor: pointer;
}

button:not(.link):hover,
button:not(.link):focus,
input[type=button]:not(.link):hover,
input[type=button]:not(.link):focus,
input[type=reset]:not(.link):hover,
input[type=reset]:not(.link):focus,
input[type=submit]:not(.link):hover,
input[type=submit]:not(.link):focus {
  background-color: rgba(255, 255, 255, 0);
  border-color: #fff;
  color: #FFF;
}

button:not(.link).disabled,
button:not(.link)[disabled],
input[type=button]:not(.link).disabled,
input[type=button]:not(.link)[disabled],
input[type=reset]:not(.link).disabled,
input[type=reset]:not(.link)[disabled],
input[type=submit]:not(.link).disabled,
input[type=submit]:not(.link)[disabled] {
  background-color: #8c8c8c;
  color: #cccccc;
  pointer-events: none;
}

button.link,
input[type=button].link,
input[type=button].link,
input[type=reset].link,
input[type=submit].link {
  color: #FFF;
  cursor: pointer;
  text-decoration: none;
  background: transparent;
}

button.link:hover,
button.link:active,
input[type=button].link:hover,
input[type=button].link:active,
input[type=button].link:hover,
input[type=button].link:active,
input[type=reset].link:hover,
input[type=reset].link:active,
input[type=submit].link:hover,
input[type=submit].link:active {
  color: #5e699d;
}

button.link:focus,
input[type=button].link:focus,
input[type=button].link:focus,
input[type=reset].link:focus,
input[type=submit].link:focus {
  outline: thin dotted;
}

button.link.disabled,
button.link[disabled],
input[type=button].link.disabled,
input[type=button].link[disabled],
input[type=button].link.disabled,
input[type=button].link[disabled],
input[type=reset].link.disabled,
input[type=reset].link[disabled],
input[type=submit].link.disabled,
input[type=submit].link[disabled] {
  color: #cccccc;
  cursor: default;
  pointer-events: none;
}

/* = Iconography = */

.thumbs-up::before {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  content: "\F087";
  margin-right: 0.5em;
}

i.fa {
  color: #5e699d;
}

/* = Messaging = */

.success {
  margin-bottom: 2rem;
  padding: 1em 3em;
  position: relative;
  background-color: #48AC2C;
}

.success p:last-of-type,
.success ul:last-of-type {
  margin-bottom: 0;
}

.success a {
  text-decoration: underline;
}

.success::before {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  display: inline-block;
  content: "";
  display: block;
  font-size: 20px;
  height: 23px;
  left: 1em;
  position: absolute;
  top: 1em;
  width: 23px;
}

.success::before {
  content: "\F00C";
}

.success a {
  color: #FFF;
}

.success a:hover {
  color: #d9d9d9;
}

.info {
  margin-bottom: 2rem;
  padding: 1em 3em;
  position: relative;
  background-color: #DDD;
}

.info p:last-of-type,
.info ul:last-of-type {
  margin-bottom: 0;
}

.info a {
  text-decoration: underline;
}

.info::before {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  display: inline-block;
  content: "";
  display: block;
  font-size: 20px;
  height: 23px;
  left: 1em;
  position: absolute;
  top: 1em;
  width: 23px;
}

.info::before {
  content: "\F129";
}

.error {
  margin-bottom: 2rem;
  padding: 1em 3em;
  position: relative;
  background-color: #CE2A2A;
}

.error p:last-of-type,
.error ul:last-of-type {
  margin-bottom: 0;
}

.error a {
  text-decoration: underline;
}

.error::before {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  display: inline-block;
  content: "";
  display: block;
  font-size: 20px;
  height: 23px;
  left: 1em;
  position: absolute;
  top: 1em;
  width: 23px;
}

.error::before {
  content: "\F12A";
}

.error a {
  color: #DDD;
}

.error a:hover {
  color: #b7b7b7;
}

/* = Tables = */

table {
  border-collapse: collapse;
  border-spacing: 0;
  margin-bottom: 2rem;
  width: 100%;
}

table caption {
  font-size: 0.9rem;
  margin-bottom: 0.75em;
}

table td,
table th {
  padding: 0.5em 1em;
  text-align: left;
  vertical-align: top;
}

table th {
  background-color: #191919;
  color: #FFF;
  font-weight: bold;
  text-transform: uppercase;
}

table td {
  border: 1px solid #e5e5e5;
}

table tr:nth-child(even) td {
  background-color: #F3F3F3;
}

/* = Section Specific = */

/* =  Page Specific = */

.tiles.col-2 > * {
  margin-bottom: 2rem;
  padding: 1rem 0;
  text-align: left;
}

.tiles.col-2 > * *:last-child {
  margin-bottom: 0;
}

.tiles.col-2 > .contact-info {
  margin-bottom: 0;
}

.tiles.col-2 h2,
.tiles.col-2 h3,
.tiles.col-2 h4 {
  text-align: left;
}

.tiles.col-2.center {
  justify-content: center;
}

.tiles.col-2.center > * {
  text-align: center;
}

.tiles.col-2.center p {
  text-align: center;
}

.tiles.col-2.center span {
  display: inline-block;
  padding: 0 0.5rem;
}

.tiles.col-2.center img {
  max-height: 400px;
}

@media only screen and (min-width: 669px) {
  .tiles.col-2 {
    margin-left: -1rem;
    margin-right: -1rem;
  }

  .tiles.col-2 > * {
    margin-left: 1rem;
    margin-right: 1rem;
    padding: 2rem;
  }
}

@media only screen and (min-width: 1024px) {
  .tiles.col-2 {
    display: flex;
    flex-flow: row wrap;
  }

  .tiles.col-2 > * {
    flex-basis: calc((100% / 2) - (2rem));
  }

  .tiles.col-2 img {
    max-width: 500px;
  }

  .tiles.col-2.center {
    align-items: center;
  }

  .tiles.col-2.center span {
    display: block;
    padding: 1rem 0;
  }

  .tiles.col-2.center p {
    text-align: right;
  }

  .tiles.col-2.center > *:last-child {
    text-align: left;
  }
}

section.about .container > div {
  display: flex;
  flex-direction: column;
}

section.about .asset {
  margin-bottom: 2rem;
}

section.about p {
  font-size: 1rem;
}

.contact-info {
  margin-bottom: 0;
}

.contact-info p {
  font-size: 1.25rem;
  text-align: center;
}

/* = Components = */

.backgroundvideo {
  align-items: center;
  display: flex;
  height: auto;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.backgroundvideo .mold {
  background-color: rgba(255, 255, 255, 0.6);
  padding: 2em;
  text-align: center;
  z-index: 2;
}

.backgroundvideo video {
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

.backgroundvideo::before {
  content: "";
  display: block;
  padding-top: 30%;
}

.dossier > * {
  text-align: center;
}

.dossier > * .photo {
  margin-bottom: 2rem;
}

@media only screen and (min-width: 669px) {
  .dossier > * {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    margin-bottom: 4rem;
    text-align: left;
  }

  .dossier > * .photo {
    flex: 0 0 25%;
    margin-bottom: 0;
    margin-right: 2rem;
  }

  .dossier > * .bio .title {
    color: #808080;
    text-transform: uppercase;
  }
}

@media only screen and (max-width: 1023px) {
  nav.primary .dropdown,
  nav.primary i.fa {
    display: none;
  }
}

@media only screen and (min-width: 1024px) {
  nav.primary i.fa {
    display: inline-block;
  }

  nav.primary .dropdown {
    background-color: #2A2A2A;
    color: #FFF;
    display: block;
    font-size: 1rem;
    min-width: 260px;
    opacity: 0;
    padding: 2rem 0;
    position: absolute;
    top: 100%;
    transition: opacity 300ms;
    visibility: hidden;
    z-index: 1;
  }

  nav.primary .dropdown .menu > * {
    padding: 0 1rem;
  }

  nav.primary .dropdown .menu li {
    margin-bottom: 0.4em;
  }

  nav.primary .dropdown .menu a {
    color: #0C96DD;
  }

  nav.primary .dropdown .menu a:hover,
  nav.primary .dropdown .menu a:focus {
    color: #0975ad;
  }

  nav.primary .dropdown.open {
    opacity: 1;
    visibility: visible;
  }
}

nav.primary li.mega {
  position: static;
}

@media only screen and (min-width: 1024px) {
  nav.primary li.mega .dropdown {
    left: 0;
    top: 100%;
    width: 100%;
  }

  nav.primary li.mega .dropdown .menu {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    margin-left: auto;
    margin-right: auto;
    max-width: 1168px;
  }

  nav.primary li.mega .dropdown .menu > * {
    border-left: 1px solid #777;
    flex-basis: 0;
    flex-grow: 1;
    padding: 0 3rem;
  }

  nav.primary li.mega .dropdown .menu > *:first-child {
    border-left: none;
    padding-left: 0;
  }

  nav.primary li.mega .dropdown .menu > *:last-child {
    padding-right: 0;
  }
}

.features > * {
  background-color: #EEE;
  margin-bottom: 2rem;
  margin-left: auto;
  margin-right: auto;
  padding: 2rem;
  text-align: center;
}

.features > * img,
.features > * h3,
.features > * p {
  margin-bottom: 1rem;
}

.features > * .button {
  margin-bottom: 0;
}

@media only screen and (min-width: 1024px) {
  .features {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
  }

  .features > * {
    display: flex;
    flex: 1 0 0;
    flex-direction: column;
    margin-left: 3rem;
    margin-right: 0;
  }

  .features > * .button {
    align-self: center;
    margin-top: auto;
  }

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

footer.primary {
  background-color: #191919;
  color: #FFF;
  font-size: 0.9rem;
  padding: 3rem 0;
  text-align: center;
}

footer.primary .branding {
  float: none;
  margin-top: 0;
}

footer.primary .branding a {
  margin-bottom: 1rem;
}

footer.primary a {
  color: #FFF;
}

footer.primary a:hover {
  color: #5e699d;
}

footer.primary nav ul {
  margin-bottom: 2rem;
  text-align: center;
}

footer.primary .social a {
  color: #FFF;
  font-size: 1.5rem;
  margin-left: 0.5rem;
}

footer.primary .legal {
  text-align: center;
}

footer.primary .legal p {
  margin-bottom: 0.25rem;
}

footer.primary .legal a {
  margin-left: 0.35rem;
  margin-right: 0.35rem;
}

@media only screen and (min-width: 1024px) {
  footer.primary .container > div {
    display: flex;
    justify-content: space-between;
  }

  footer.primary .container > div > * {
    flex: 1 0 0;
  }

  footer.primary .container > div > nav {
    flex-grow: 2;
    margin-bottom: 0;
  }

  footer.primary .branding {
    text-align: left;
  }

  footer.primary .social {
    text-align: right;
  }
}

header.primary {
  position: fixed;
  top: 0;
  transition: top 0.16s cubic-bezier(0, 0.4, 0.7, 1);
  width: 100%;
  z-index: 100;
}

.listing {
  margin-bottom: 2rem;
}

.listing form .search {
  display: flex;
}

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

.listing form .search .text {
  flex-grow: 1;
}

.listing form .search .submit {
  flex-basis: 120px;
  flex-shrink: 0;
}

.listing form .search .submit input {
  height: 100%;
  width: 100%;
}

.listing form .filters {
  margin-bottom: 2rem;
}

.listing form .filters label {
  display: inline;
}

.listing form .filters span {
  background-color: #0e173d;
  border-radius: 0.5rem;
  color: #fff;
  display: inline-block;
  margin: 0 0.5rem 0.5rem 0;
  padding: 0.5rem 1rem;
}

.listing form .filters input[type=checkbox]:checked + span {
  background-color: #0e173d;
}

.listing form .filters input[type=checkbox] {
  display: none;
}

.listing ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.listing ul li {
  border-top: 4px solid #e5e5e5;
  margin-bottom: 0;
  padding: 2rem 0;
}

.listing ul li .meta {
  display: block;
  font-size: 0.9rem;
  margin-bottom: 1em;
}

.listing ul li h2 + .meta {
  margin-top: -1em;
}

.listing ul li .summary p:last-of-type {
  margin-bottom: 0;
}

.login {
  background: #EEE;
  margin-left: auto;
  margin-right: auto;
  max-width: 600px;
  padding: 3rem;
}

.login input:focus {
  box-shadow: 0 0 5px rgba(114, 164, 0, 0.7);
}

.login .submit {
  text-align: center;
}

.login .actions {
  text-align: center;
}

@media only screen and (min-width: 669px) {
  .login .actions {
    align-items: center;
    display: flex;
    justify-content: space-between;
    flex-flow: row wrap;
  }

  .login .actions > * {
    margin: 0;
    padding: 0;
  }

  .login .actions label {
    margin-left: 1em;
  }

  .login .actions a {
    display: block;
    margin-left: auto;
    text-align: right;
  }
}

nav.pagination {
  display: flex;
  justify-content: center;
}

nav.pagination ul {
  border: 1px solid #e5e5e5;
  border-radius: 2px;
  display: flex;
  justify-content: center;
}

nav.pagination li {
  margin-bottom: 0;
}

nav.pagination a {
  color: #FFF;
  padding: 0.5rem 1rem;
  position: relative;
}

nav.pagination li:not(:last-child) a {
  border-right: 1px solid #e5e5e5;
}

nav.pagination li.active a {
  background-color: #0e173d;
  color: #fff;
  cursor: default;
  pointer-events: none;
}

nav.pagination li.active a::before,
nav.pagination li.active a::after {
  background-color: #0e173d;
}

nav.pagination li.active a:hover {
  color: #fff;
  background-color: #5e699d;
}

nav.pagination li.active a:hover::before,
nav.pagination li.active a:hover::after {
  background-color: #5e699d;
}

nav.pagination li.disabled a {
  color: #e5e5e5;
  cursor: default;
  pointer-events: none;
}

nav.pagination li.previous a::before {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  content: "\F100";
}

nav.pagination li.next a::before {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  content: "\F101";
}

nav.pagination li:hover:not(.active):not(.disabled) a {
  background-color: #FFF;
  color: #FFF;
}

nav.pagination li:hover:not(.active):not(.disabled) a::before {
  background-color: #FFF;
  color: #FFF;
}

header.primary {
  position: fixed;
  top: 0;
  transition: top 0.16s cubic-bezier(0, 0.4, 0.7, 1);
  width: 100%;
  z-index: 100;
}

.tabs {
  position: relative;
}

.tabs nav {
  border-bottom: 1px solid;
}

.tabs nav ul {
  list-style: none;
  margin-left: 20px;
  padding: 0;
  text-align: center;
}

.tabs nav li {
  background-color: #CBBFB4;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  cursor: pointer;
  display: inline-block;
  margin-bottom: 0;
  margin-right: 0.5em;
  padding: 0.5em 1em;
}

.tabs nav li.active {
  background-color: #FFF;
  border: 1px solid;
  border-bottom: none;
  position: relative;
}

.tabs nav li.active::after {
  background-color: #FFF;
  bottom: -1px;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  width: 100%;
}

.tabs .panel {
  display: none;
  padding: 20px;
}

.tabs .panel.active {
  display: inherit;
}

@media only screen and (min-width: 1024px) {
  .tabs nav ul {
    margin-left: 20px;
    text-align: left;
  }
}

.testimonial {
  margin-bottom: 4rem;
  padding: 4rem 0 4rem;
  text-align: center;
}

.testimonial .asset {
  margin-bottom: 2rem;
}

.testimonial .asset img {
  max-width: 280px;
}

.testimonial blockquote {
  border: none;
  color: #fff;
  font-size: 1rem;
  margin-bottom: 1rem;
  padding: 0;
  position: relative;
}

.testimonial blockquote::before,
.testimonial blockquote::after {
  color: #5e699d;
  font-family: Georgia, serif;
  font-size: 3.375rem;
  position: absolute;
}

.testimonial blockquote::before {
  content: "\201C";
  left: -1rem;
  line-height: 1;
  top: 0;
}

.testimonial blockquote::after {
  bottom: 0;
  color: #fff;
  content: "\201D";
  font-size: 10rem;
  line-height: 0;
  opacity: 0.35;
  position: absolute;
  right: 0;
}

.testimonial blockquote p {
  color: #fff;
  font-size: 0.875rem;
}

.testimonial blockquote .attr {
  color: #808080;
  font-size: 0.875rem;
  font-style: italic;
  font-weight: bold;
  margin-bottom: 0;
  padding: 0;
}

@media only screen and (min-width: 669px) {
  .testimonial blockquote {
    padding: 0 2.5rem;
  }

  .testimonial blockquote::before {
    left: 0;
  }
}

@media only screen and (min-width: 1024px) {
  .testimonial {
    text-align: left;
  }

  .testimonial .container > div {
    display: flex;
    justify-content: space-between;
  }

  .testimonial .asset {
    flex-basis: 33%;
    flex-shrink: 0;
    margin-bottom: 0;
    margin-right: 4rem;
  }

  .testimonial .asset img {
    max-width: 100%;
  }

  .testimonial blockquote {
    font-size: 1.125rem;
    padding: 0 6rem;
  }

  .testimonial blockquote::before,
  .testimonial blockquote::after {
    font-size: 7rem;
  }

  .testimonial blockquote::after {
    font-size: 30rem;
  }

  .testimonial blockquote p {
    font-size: 1rem;
  }

  .testimonial blockquote ~ p {
    font-size: 1rem;
    padding: 0 6rem;
  }
}

.tiles > * {
  margin-bottom: 2rem;
  padding: 1rem 0;
  text-align: left;
}

.tiles > * *:last-child {
  margin-bottom: 0;
}

.tiles > .contact-info {
  margin-bottom: 0;
}

.tiles h2,
.tiles h3,
.tiles h4 {
  text-align: left;
}

.tiles.center {
  justify-content: center;
}

.tiles.center > * {
  text-align: center;
}

.tiles.center p {
  text-align: center;
}

.tiles.center span {
  display: inline-block;
  padding: 0 0.5rem;
}

.tiles.center img {
  max-height: 400px;
}

@media only screen and (min-width: 669px) {
  .tiles {
    margin-left: -1rem;
    margin-right: -1rem;
  }

  .tiles > * {
    margin-left: 1rem;
    margin-right: 1rem;
    padding: 2rem;
  }
}

@media only screen and (min-width: 1024px) {
  .tiles {
    display: flex;
    flex-flow: row wrap;
  }

  .tiles > * {
    flex-basis: calc((100% / 3) - (2rem));
  }

  .tiles img {
    max-width: 500px;
  }

  .tiles.center {
    align-items: center;
  }

  .tiles.center span {
    display: block;
    padding: 1rem 0;
  }

  .tiles.center p {
    text-align: right;
  }

  .tiles.center > *:last-child {
    text-align: left;
  }
}

.accordions > div .header {
  background: #DDD;
  color: #191919;
  cursor: pointer;
  font-size: 1em;
  margin-top: 0.5em;
  padding: 0.5em 1em;
  position: relative;
  text-align: left;
  width: 100%;
}

.accordions > div .header:hover {
  background: #d0d0d0;
}

.accordions > div .header::after {
  bottom: 0;
  height: 1em;
  margin: auto 0;
  position: absolute;
  right: 1em;
  top: 0;
  width: 1em;
}

.accordions > div .header.open {
  background: #d0d0d0;
}

.accordions > div .header.open::after {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  content: "\F068";
}

.accordions > div .header.close::after {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  content: "\F067";
}

.accordions > div .content {
  padding: 1em 0;
}

.accordions > div .content.hidden {
  display: none;
}

/* site components */

.hero {
  background: #0e173d url(/public/img/nyc-skyline.png) no-repeat center bottom/100% auto;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2rem 0;
  text-align: center;
}

.hero h1 {
  margin-bottom: 0;
  text-transform: uppercase;
}

.hero h2 {
  font-size: 1.5rem;
}

.hero h2:last-child {
  margin-bottom: 0;
}

.hero p.meta {
  font-size: 1.75rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.hero .copy h1 {
  margin-bottom: 3rem;
}

.hero.home {
  background: #0d1640 url(/public/img/nyc-skyline.png) no-repeat center bottom/auto 50%;
  padding: 2rem 0 1rem;
}

.hero.home h1 {
  margin-bottom: 4.625rem;
}

.hero.home p {
  font-size: 1.325rem;
  margin: 0 auto 3rem;
  max-width: 80%;
}

.hero.home img {
  margin: 0 auto;
  max-width: 250px;
}

.hero.home .tiles.col-2 > * {
  text-align: center;
}

.tiles > div {
  text-align: center;
}

.cta {
  background: #fff;
  border: none;
  padding: 5rem 0;
  text-align: center;
}

.cta h2,
.cta h3,
.cta h4 {
  color: #0e173d;
}

.cta p {
  color: #383f63;
}

.cta .tiles {
  margin-bottom: 2rem;
}

.cta .tiles div {
  border-radius: 5px;
  overflow: hidden;
  min-height: 12rem;
  padding: 0;
  position: relative;
  text-align: center;
}

.cta .tiles div a {
  transition: all 250ms ease-in-out;
  background-color: #383f63;
  display: block;
  font-size: 1.5rem;
  height: 100%;
  left: 0;
  margin-bottom: 0;
  padding: 3rem;
  position: absolute;
  text-align: left;
  text-transform: uppercase;
  top: 0;
  width: 100%;
}

.cta .tiles div a:hover {
  background: #5e699d;
  color: #fff;
}

.cta .tiles div:after {
  font: normal normal normal 1em / 1 FontAwesome;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  text-rendering: auto;
  text-transform: none;
  display: inline-block;
  transition: all 250ms ease-in-out;
  bottom: 1rem;
  content: "\F105";
  color: #fff;
  font-size: 2rem;
  position: absolute;
  left: 3rem;
  z-index: 10;
}

.cta .tiles div h3 {
  color: #fff;
  font-size: 1.25rem;
  position: relative;
  text-align: left;
  text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
  z-index: 10;
}

.cta .tiles div i {
  bottom: -1rem;
  color: rgba(0, 0, 0, 0.3);
  font-size: 10rem;
  position: absolute;
  right: -2rem;
  z-index: 5;
}

.cta .tiles div i.fa-quote-right {
  bottom: -1.5rem;
  font-size: 9rem;
}

.cta .tiles div:hover::after {
  left: 90%;
}

.services .flex {
  display: flex;
  flex-direction: column;
}

.services-group {
  margin-bottom: 2rem;
  padding-left: 3rem;
  position: relative;
}

.services-group h3 {
  line-height: 1;
}

.services-group::before {
  background-color: #3474af;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 3px;
}

/* = Media Queries = */

@media only screen and (min-width: 669px) {
  main section {
    padding: 3rem;
  }

  /* = Typography = */

  h1,
  h2,
  h3,
  h4,
  h5 {
    margin-bottom: 3rem;
  }

  h1 {
    font-size: 3rem;
  }

  h2 {
    font-size: 2.5rem;
  }

  h3 {
    font-size: 2.25rem;
  }

  h4 {
    font-size: 1.5rem;
  }

  h5 {
    font-size: 1.25rem;
  }

  .branding a {
    max-width: 200px;
  }

  .branding img {
    max-width: 200px;
  }

  /* = Layout = */

  aside.primary {
    float: right;
    margin-bottom: 0;
    width: 20%;
  }

  aside.primary nav ul {
    text-align: left;
  }

  aside.primary ~ main {
    float: left;
    padding-right: 2rem;
    width: 80%;
  }

  header.primary .menu-toggle {
    right: 3rem;
  }

  nav.primary ul li {
    font-size: 2rem;
  }

  nav.secondary .contact {
    font-size: 1rem;
    text-align: right;
    position: absolute;
    right: 9rem;
    top: 3.25rem;
  }

  .utilities ul {
    text-align: right;
  }

  footer.primary .location {
    text-align: left;
  }

  footer.primary .copyright {
    margin-bottom: 0;
  }

  .hero {
    padding: 3rem 0;
  }

  .hero h2 {
    font-size: 2.5rem;
  }

  .hero.home {
    background: #0d1640 url(/public/img/nyc-skyline.png) no-repeat center bottom/100% auto;
    padding: 8rem 0;
  }

  .hero.home h1 {
    text-align: left;
  }

  .hero.home p {
    margin: 0 0 5rem;
    text-align: left;
  }

  .hero.home img {
    max-width: 250px;
  }

  .hero.home .tiles.col-2 > * {
    text-align: left;
  }

  .hero.home .tiles.col-2 > div {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .hero.home .tiles.col-2 img {
    height: auto;
    max-width: 320px;
  }

  section.about .container > div {
    align-items: center;
    flex-direction: row;
  }

  section.about .container > div div {
    flex-basis: 60%;
    justify-content: space-bewteen;
    padding: 2rem 0;
  }

  section.about .container > div .asset {
    flex-basis: 40%;
    padding-left: 4rem;
  }

  section.about .container > div p {
    font-size: 1.2rem;
  }

  section.about .container > div.reverse div {
    order: 2;
  }

  section.about .container > div.reverse .asset {
    order: 1;
    padding-left: 0;
    padding-right: 4rem;
  }

  .services .flex {
    flex-direction: row;
  }

  .services .flex h3 {
    text-align: left;
  }

  .services .flex > div {
    flex-basis: 50%;
  }

  .services .flex .assets img {
    margin: 0 0 2rem 2rem;
  }

  .services-group {
    margin-bottom: 5rem;
  }

  .contact-info p {
    font-size: 1.5rem;
    text-align: right;
  }

  .cta .tiles div {
    min-height: 15rem;
  }

  .cta .tiles h3 {
    font-size: 1.75rem;
  }
}

@media only screen and (min-width: 1024px) {
  /* = Layout = */

  .wrapper {
    overflow: auto;
  }

  aside.primary {
    width: 25%;
  }

  aside.primary ~ main {
    width: 70%;
  }
}

/* = Print Styles = */

@media print {
  * {
    background-color: transparent !important;
    box-shadow: none !important;
    color: #000 !important;
    /* Black prints faster: h5bp.com/s */
    text-shadow: none !important;
  }

  a {
    text-decoration: underline;
  }

  pre,
  blockquote,
  tr,
  img,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group;
  }

@page {
    margin: 0.5cm;
}

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


/*# sourceMappingURL=styles.css.map*/