@charset "UTF-8";
/* ==========================================================================
   Third-Party Code
   ========================================================================== */
/*! normalize.css v1.0.1 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/*
 * Corrects `block` display not defined in IE 6/7/8/9 and Firefox 3.
 */
/* line 11, ../sass/vendor/_normalize.scss */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary,
main {
  display: block; }

/*
 * Corrects `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
 */
/* line 32, ../sass/vendor/_normalize.scss */
audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  *zoom: 1; }

/*
 * Prevents modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
/* line 45, ../sass/vendor/_normalize.scss */
audio:not([controls]) {
  display: none;
  height: 0; }

/*
 * Addresses styling for `hidden` attribute not present in IE 7/8/9, Firefox 3,
 * and Safari 4.
 * Known issue: no IE 6 support.
 */
/* line 56, ../sass/vendor/_normalize.scss */
[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/*
 * 1. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
 *    `em` units.
 * 2. Prevents iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
/* line 71, ../sass/vendor/_normalize.scss */
html {
  font-size: 100%;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 2 */ }

/*
 * Addresses `font-family` inconsistency between `textarea` and other form
 * elements.
 */
/* line 82, ../sass/vendor/_normalize.scss */
html,
button,
input,
select,
textarea {
  font-family: sans-serif; }

/*
 * Addresses margins handled incorrectly in IE 6/7.
 */
/* line 94, ../sass/vendor/_normalize.scss */
body {
  margin: 0; }

/* ==========================================================================
   Links
   ========================================================================== */
/*
 * Addresses `outline` inconsistency between Chrome and other browsers.
 */
/* line 106, ../sass/vendor/_normalize.scss */
a:focus {
  outline: thin dotted; }

/*
 * Improves readability when focused and also mouse hovered in all browsers.
 */
/* line 114, ../sass/vendor/_normalize.scss */
a:active,
a:hover {
  outline: 0; }

/* line 119, ../sass/vendor/_normalize.scss */
:focus {
  outline: none; }

/* ==========================================================================
   Typography
   ========================================================================== */
/*
 * Addresses font sizes and margins set differently in IE 6/7.
 * Addresses font sizes within `section` and `article` in Firefox 4+, Safari 5,
 * and Chrome.
 */
/* line 133, ../sass/vendor/_normalize.scss */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* line 138, ../sass/vendor/_normalize.scss */
h2 {
  font-size: 1.5em;
  margin: 0.83em 0; }

/* line 143, ../sass/vendor/_normalize.scss */
h3 {
  font-size: 1.17em;
  margin: 1em 0; }

/* line 148, ../sass/vendor/_normalize.scss */
h4 {
  font-size: 1em;
  margin: 1.33em 0; }

/* line 153, ../sass/vendor/_normalize.scss */
h5 {
  font-size: 0.83em;
  margin: 1.67em 0; }

/* line 158, ../sass/vendor/_normalize.scss */
h6 {
  font-size: 0.75em;
  margin: 2.33em 0; }

/*
 * Addresses styling not present in IE 7/8/9, Safari 5, and Chrome.
 */
/* line 167, ../sass/vendor/_normalize.scss */
abbr[title] {
  border-bottom: 1px dotted; }

/*
 * Addresses style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
 */
/* line 175, ../sass/vendor/_normalize.scss */
b,
strong {
  font-weight: bold; }

/* line 180, ../sass/vendor/_normalize.scss */
blockquote {
  margin: 1em 40px; }

/*
 * Addresses styling not present in Safari 5 and Chrome.
 */
/* line 188, ../sass/vendor/_normalize.scss */
dfn {
  font-style: italic; }

/*
 * Addresses styling not present in IE 6/7/8/9.
 */
/* line 196, ../sass/vendor/_normalize.scss */
mark {
  background: #ff0;
  color: #000; }

/*
 * Addresses margins set differently in IE 6/7.
 */
/* line 205, ../sass/vendor/_normalize.scss */
p,
pre {
  margin: 1em 0; }

/*
 * Corrects font family set oddly in IE 6, Safari 4/5, and Chrome.
 */
/* line 214, ../sass/vendor/_normalize.scss */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  _font-family: 'courier new', monospace;
  font-size: 1em; }

/*
 * Improves readability of pre-formatted text in all browsers.
 */
/* line 227, ../sass/vendor/_normalize.scss */
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

/*
 * Addresses CSS quotes not supported in IE 6/7.
 */
/* line 237, ../sass/vendor/_normalize.scss */
q {
  quotes: none; }

/*
 * Addresses `quotes` property not supported in Safari 4.
 */
/* line 245, ../sass/vendor/_normalize.scss */
q:before,
q:after {
  content: '';
  content: none; }

/*
 * Addresses inconsistent and variable font size in all browsers.
 */
/* line 255, ../sass/vendor/_normalize.scss */
small {
  font-size: 80%; }

/*
 * Prevents `sub` and `sup` affecting `line-height` in all browsers.
 */
/* line 263, ../sass/vendor/_normalize.scss */
sub,
sup {
  font-size: 75% !important;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

/* line 271, ../sass/vendor/_normalize.scss */
sup {
  top: -0.5em; }

/* line 275, ../sass/vendor/_normalize.scss */
sub {
  bottom: -0.25em; }

/* ==========================================================================
   Lists
   ========================================================================== */
/*
 * Addresses margins set differently in IE 6/7.
 */
/* line 287, ../sass/vendor/_normalize.scss */
dl,
menu,
ol,
ul {
  margin: 1em 0; }

/* line 294, ../sass/vendor/_normalize.scss */
dd {
  margin: 0 0 0 40px; }

/*
 * Addresses paddings set differently in IE 6/7.
 */
/* line 302, ../sass/vendor/_normalize.scss */
menu,
ol,
ul {
  padding: 0 0 0 40px; }

/*
 * Corrects list images handled incorrectly in IE 7.
 */
/* line 312, ../sass/vendor/_normalize.scss */
nav ul,
nav ol {
  list-style: none;
  list-style-image: none; }

/* ==========================================================================
   Embedded content
   ========================================================================== */
/*
 * 1. Removes border when inside `a` element in IE 6/7/8/9 and Firefox 3.
 * 2. Improves image quality when scaled in IE 7.
 */
/* line 327, ../sass/vendor/_normalize.scss */
img {
  border: 0;
  /* 1 */
  -ms-interpolation-mode: bicubic;
  /* 2 */
  max-width: 100%;
  height: auto; }

/*
 * Corrects overflow displayed oddly in IE 9.
 */
/* line 338, ../sass/vendor/_normalize.scss */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/*
 * Addresses margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
 */
/* line 350, ../sass/vendor/_normalize.scss */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/*
 * Corrects margin displayed oddly in IE 6/7.
 */
/* line 362, ../sass/vendor/_normalize.scss */
form {
  margin: 0; }

/*
 * Define consistent border, margin, and padding.
 */
/* line 370, ../sass/vendor/_normalize.scss */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/*
 * 1. Corrects color not being inherited in IE 6/7/8/9.
 * 2. Corrects text not wrapping in Firefox 3.
 * 3. Corrects alignment displayed oddly in IE 6/7.
 */
/* line 382, ../sass/vendor/_normalize.scss */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  white-space: normal;
  /* 2 */
  *margin-left: -7px;
  /* 3 */ }

/*
 * 1. Corrects font size not being inherited in all browsers.
 * 2. Addresses margins set differently in IE 6/7, Firefox 3+, Safari 5,
 *    and Chrome.
 * 3. Improves appearance and consistency in all browsers.
 */
/* line 396, ../sass/vendor/_normalize.scss */
button,
input,
select,
textarea {
  font-size: 100%;
  /* 1 */
  margin: 0;
  /* 2 */
  vertical-align: baseline;
  /* 3 */
  *vertical-align: middle;
  /* 3 */ }

/*
 * Addresses Firefox 3+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
/* line 411, ../sass/vendor/_normalize.scss */
button,
input {
  line-height: normal; }

/*
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Corrects inability to style clickable `input` types in iOS.
 * 3. Improves usability and consistency of cursor style between image-type
 *    `input` and others.
 * 4. Removes inner spacing in IE 7 without affecting normal text inputs.
 *    Known issue: inner spacing remains in IE 6.
 */
/* line 426, ../sass/vendor/_normalize.scss */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
  *overflow: visible;
  /* 4 */ }

/*
 * Re-set default cursor for disabled elements.
 */
/* line 439, ../sass/vendor/_normalize.scss */
button[disabled],
input[disabled] {
  cursor: default; }

/*
 * 1. Addresses box sizing set to content-box in IE 8/9.
 * 2. Removes excess padding in IE 8/9.
 * 3. Removes excess padding in IE 7.
 *    Known issue: excess padding remains in IE 6.
 */
/* line 451, ../sass/vendor/_normalize.scss */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
  *height: 13px;
  /* 3 */
  *width: 13px;
  /* 3 */ }

/*
 * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
/* line 465, ../sass/vendor/_normalize.scss */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */ }

/*
 * Removes inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
/* line 474, ../sass/vendor/_normalize.scss */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/*
 * Removes inner padding and border in Firefox 3+.
 */
/* line 483, ../sass/vendor/_normalize.scss */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/*
 * 1. Removes default vertical scrollbar in IE 6/7/8/9.
 * 2. Improves readability and alignment in all browsers.
 */
/* line 494, ../sass/vendor/_normalize.scss */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

/* ==========================================================================
   Tables
   ========================================================================== */
/*
 * Remove most spacing between table cells.
 */
/* line 507, ../sass/vendor/_normalize.scss */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */
/*
 * A better looking default horizontal rule
 */
/* line 520, ../sass/vendor/_normalize.scss */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

/*
 * Remove the gap between images and the bottom of their containers: h5bp.com/i/440
 */
/* line 533, ../sass/vendor/_normalize.scss */
img {
  vertical-align: middle; }

/*
 * Remove default fieldset styles.
 */
/* line 541, ../sass/vendor/_normalize.scss */
fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

/*
 * Allow only vertical resizing of textareas.
 */
/* line 551, ../sass/vendor/_normalize.scss */
textarea {
  resize: vertical; }

/* ==========================================================================
   Chrome Frame prompt
   ========================================================================== */
/* line 559, ../sass/vendor/_normalize.scss */
.chromeframe {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0; }

/* ==========================================================================
   Helper classes
   ========================================================================== */
/*
 * Image replacement
 */
/* line 574, ../sass/vendor/_normalize.scss */
.ir {
  background-color: transparent;
  border: 0;
  overflow: hidden;
  /* IE 6/7 fallback */
  *text-indent: -9999px; }

/* line 582, ../sass/vendor/_normalize.scss */
.ir:before {
  content: "";
  display: block;
  width: 0;
  height: 100%; }

/*
 * Hide from both screenreaders and browsers: h5bp.com/u
 */
/* line 593, ../sass/vendor/_normalize.scss */
.hidden {
  display: none !important;
  visibility: hidden; }

/*
 * Hide only visually, but have it available for screenreaders: h5bp.com/v
 */
/* line 613, ../sass/vendor/_normalize.scss */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
 * Extends the .visuallyhidden class to allow the element to be focusable
 * when navigated to via the keyboard: h5bp.com/p
 */
/* line 622, ../sass/vendor/_normalize.scss */
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

/*
 * Hide visually and from screenreaders, but maintain layout
 */
/* line 636, ../sass/vendor/_normalize.scss */
.invisible {
  visibility: hidden; }

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
/* line 652, ../sass/vendor/_normalize.scss */
.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

/* line 658, ../sass/vendor/_normalize.scss */
.clearfix:after {
  clear: both; }

/*
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
/* line 683, ../sass/vendor/_normalize.scss */
.clearfix {
  *zoom: 1; }

/* line 688, ../sass/vendor/_normalize.scss */
.nobreak {
  white-space: nowrap; }

/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */
/* line 5, ../sass/vendor/_helper.scss */
html,
button,
input,
select,
textarea {
  color: #222; }

/* line 14, ../sass/vendor/_helper.scss */
body {
  font-size: 1em;
  line-height: 1.4; }

/*
 * Remove text-shadow in selection highlight: h5bp.com/i
 * These selection declarations have to be separate.
 * Customize the background color to match your design.
 */
/* line 25, ../sass/vendor/_helper.scss */
::-moz-selection {
  background: #b3d4fc;
  text-shadow: none; }

/* line 30, ../sass/vendor/_helper.scss */
::selection {
  background: #b3d4fc;
  text-shadow: none; }

/*
 * A better looking default horizontal rule
 */
/* line 39, ../sass/vendor/_helper.scss */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

/*
 * Remove the gap between images and the bottom of their containers: h5bp.com/i/440
 */
/* line 52, ../sass/vendor/_helper.scss */
img {
  vertical-align: middle; }

/*
 * Remove default fieldset styles.
 */
/* line 60, ../sass/vendor/_helper.scss */
fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

/*
 * Allow only vertical resizing of textareas.
 */
/* line 70, ../sass/vendor/_helper.scss */
textarea {
  resize: vertical; }

/* ==========================================================================
   Chrome Frame prompt
   ========================================================================== */
/* line 78, ../sass/vendor/_helper.scss */
.chromeframe {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0; }

/* ==========================================================================
   Author's custom styles
   ========================================================================== */
/* ==========================================================================
   Helper classes
   ========================================================================== */
/*
 * Image replacement
 */
/* line 113, ../sass/vendor/_helper.scss */
.ir {
  background-color: transparent;
  border: 0;
  overflow: hidden;
  /* IE 6/7 fallback */
  *text-indent: -9999px; }

/* line 121, ../sass/vendor/_helper.scss */
.ir:before {
  content: "";
  display: block;
  width: 0;
  height: 100%; }

/*
 * Hide from both screenreaders and browsers: h5bp.com/u
 */
/* line 132, ../sass/vendor/_helper.scss */
.hidden {
  display: none !important;
  visibility: hidden; }

/*
 * Hide only visually, but have it available for screenreaders: h5bp.com/v
 */
/* line 152, ../sass/vendor/_helper.scss */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
 * Extends the .visuallyhidden class to allow the element to be focusable
 * when navigated to via the keyboard: h5bp.com/p
 */
/* line 161, ../sass/vendor/_helper.scss */
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

/*
 * Hide visually and from screenreaders, but maintain layout
 */
/* line 175, ../sass/vendor/_helper.scss */
.invisible {
  visibility: hidden; }

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
/* line 191, ../sass/vendor/_helper.scss */
.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

/* line 197, ../sass/vendor/_helper.scss */
.clearfix:after {
  clear: both; }

/*
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
/* line 214, ../sass/vendor/_helper.scss */
.clearfix {
  *zoom: 1; }

/* line 219, ../sass/vendor/_helper.scss */
.nobreak {
  white-space: nowrap; }

/* ==========================================================================
   Project Setup
   ========================================================================== */
@-ms-viewport {
  width: device-width;
  zoom: 1;
  max-zoom: 1; }
@viewport {
  width: device-width;
  zoom: 1;
  max-zoom: 1; }
@font-face {
  font-family: 'Icons';
  src: url("../fonts/shannon-icons.ttf?-yyqq3c") format("truetype"), url("../fonts/shannon-icons.woff?-yyqq3c") format("woff");
  font-weight: normal;
  font-style: normal; }
/* ==== Variables ==== */
/* ==== Utilities ==== */
/* ==========================================================================
   Base Styles
   ========================================================================== */
/* line 1, ../sass/_base.scss */
* {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

/* line 5, ../sass/_base.scss */
html {
  font-family: "Open Sans", sans-serif;
  color: #5b506c;
  line-height: 1.5;
  scroll-behavior: smooth; }

/* line 11, ../sass/_base.scss */
h1, h2, h3, h4, h5, h6 {
  max-width: 58rem;
  margin: 1.5em auto 1.5rem auto;
  scroll-margin-top: 1.5em; }
  /* line 15, ../sass/_base.scss */
  h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
    margin-top: 0; }
  /* line 19, ../sass/_base.scss */
  h1.no-margin, h2.no-margin, h3.no-margin, h4.no-margin, h5.no-margin, h6.no-margin {
    margin-bottom: 0; }

/* line 25, ../sass/_base.scss */
h1 {
  margin-bottom: 1em;
  font-family: "Libre Baskerville", serif;
  font-size: 1.5rem;
  line-height: 1.1;
  font-weight: normal;
  color: #ca3485; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 25, ../sass/_base.scss */
    h1 {
      font-size: calc( 1.5rem + (2.5 - 1.5) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 25, ../sass/_base.scss */
    h1 {
      font-size: 2.5rem; } }

/* line 35, ../sass/_base.scss */
h2 {
  margin-bottom: 1em;
  font-family: "Libre Baskerville", serif;
  font-size: 1.25rem;
  line-height: 1.15;
  font-weight: normal;
  color: #5b506c; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 35, ../sass/_base.scss */
    h2 {
      font-size: calc( 1.25rem + (2 - 1.25) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 35, ../sass/_base.scss */
    h2 {
      font-size: 2rem; } }

/* line 44, ../sass/_base.scss */
h3 {
  font-family: "Libre Baskerville", serif;
  font-size: 1.125rem;
  line-height: 1.15;
  font-weight: normal;
  color: inherit; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 44, ../sass/_base.scss */
    h3 {
      font-size: calc( 1.125rem + (1.675 - 1.125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 44, ../sass/_base.scss */
    h3 {
      font-size: 1.675rem; } }

/* line 52, ../sass/_base.scss */
h4 {
  font-family: "Open Sans", sans-serif;
  font-size: 1rem;
  line-height: 1.2;
  font-weight: bold;
  color: #5b506c; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 52, ../sass/_base.scss */
    h4 {
      font-size: calc( 1rem + (1.25 - 1) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 52, ../sass/_base.scss */
    h4 {
      font-size: 1.25rem; } }

/* line 60, ../sass/_base.scss */
h5, h6 {
  font-family: "Open Sans", sans-serif;
  font-size: 0.9125rem;
  line-height: 1.3;
  font-weight: bold;
  color: inherit; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 60, ../sass/_base.scss */
    h5, h6 {
      font-size: calc( 0.9125rem + (1.125 - 0.9125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 60, ../sass/_base.scss */
    h5, h6 {
      font-size: 1.125rem; } }

/* line 68, ../sass/_base.scss */
p, ul, ol, table {
  max-width: 58rem;
  margin: 1.5rem auto;
  font-size: 0.9125rem;
  line-height: 1.6; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 68, ../sass/_base.scss */
    p, ul, ol, table {
      font-size: calc( 0.9125rem + (1.25 - 0.9125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 68, ../sass/_base.scss */
    p, ul, ol, table {
      font-size: 1.25rem; } }
  @media (min-width: 37.5em) {
    /* line 68, ../sass/_base.scss */
    p, ul, ol, table {
      font-weight: 300; } }
  /* line 78, ../sass/_base.scss */
  p:first-child, ul:first-child, ol:first-child {
    margin-top: 0; }
  /* line 82, ../sass/_base.scss */
  p:last-child, ul:last-child, ol:last-child {
    margin-bottom: 0; }
  /* line 86, ../sass/_base.scss */
  .no-margin + p, .no-margin + ul, .no-margin + ol {
    margin-top: 0; }

/* line 92, ../sass/_base.scss */
ul {
  padding-left: 1.5rem; }

li {
  margin-bottom: 0.5em;
}

/* line 96, ../sass/_base.scss */
a {
  color: #1484a0;
  transition: all 0.25s ease-in-out; }
  /* line 99, ../sass/_base.scss */
  a:hover, a:focus {
    color: #ca3485;
  }

a[target="_blank"]::after {
  content: " \e901";
  font-family: "Icons";
  font-size: 0.825em;
}

input:focus,
select:focus,
textarea:focus,
*:focus-visible {
  outline: 2px solid #ca3485 !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 6px #fff;
}

/* line 105, ../sass/_base.scss */
sup, sub {
  font-size: 0.5em !important; }

/* line 109, ../sass/_base.scss */
sup {
  top: -1em; }

/* line 113, ../sass/_base.scss */
sub {
  bottom: -0.5em; }

/* line 117, ../sass/_base.scss */
small {
  font-size: 0.9375em;
  font-family: "Libre Baskerville", serif;
  font-style: italic;
  color: #8d81a1; }
  /* line 123, ../sass/_base.scss */
  small strong {
    color: #5b506c; }

/* line 129, ../sass/_base.scss */
picture, img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 1.5rem auto;
  padding: 0.5rem;
  border: 1px solid #bcb4c7; }
  /* line 137, ../sass/_base.scss */
  picture:first-child, img:first-child {
    margin-top: 0; }
  /* line 141, ../sass/_base.scss */
  picture:last-child, img:last-child {
    margin-bottom: 0; }
  /* line 145, ../sass/_base.scss */
  picture img, img img {
    margin: 0;
    padding: 0;
    border: 0; }

/* line 153, ../sass/_base.scss */
hr {
  margin: calc(1.5rem + 3%) 0;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #ddd; }

/* line 159, ../sass/_base.scss */
label {
  font-size: 0.9125rem;
  padding: 0 0 0.125em 0; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 159, ../sass/_base.scss */
    label {
      font-size: calc( 0.9125rem + (1.125 - 0.9125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 159, ../sass/_base.scss */
    label {
      font-size: 1.125rem; } }
  /* line 164, ../sass/_base.scss */
  .required label::after {
    content: " (required)";
    font-size: 0.875em;
    font-style: italic; }
  /* line 171, ../sass/_base.scss */
  .error label {
    color: #ca3485; }
  @media (min-width: 37.5em) {
    /* line 159, ../sass/_base.scss */
    label {
      font-weight: 300; } }

/* line 181, ../sass/_base.scss */
input, textarea {
  width: 100%;
  padding: 0.5em 0.75em;
  background: rgba(188, 180, 199, 0.1875);
  border: 1px solid rgba(188, 180, 199, 0.5);
  border-radius: 0.5em;
  box-shadow: none;
  font-family: "Open Sans", sans-serif;
  font-size: 1rem;
  line-height: 1.4;
  transition: all 0.25s ease-in-out; }
  /* line 193, ../sass/_base.scss */
  input:hover, textarea:hover {
    border-color: #87799c; }
  /* line 197, ../sass/_base.scss */
  input:focus, textarea:focus {
    background: rgba(20, 132, 160, 0.125); }
  /* line 201, ../sass/_base.scss */
  .error input, .error textarea {
    background: rgba(202, 52, 133, 0.1875); }
    /* line 205, ../sass/_base.scss */
    .error input:focus, .error textarea:focus {
      background: rgba(202, 52, 133, 0.0625); }

/* line 213, ../sass/_base.scss */
textarea {
  min-height: 8em; }

/* line 217, ../sass/_base.scss */
.portfolio-list .portfolio-list-button, button, .button {
  display: block;
  width: 100%;
  margin: 1.5rem auto;
  padding: 1em 2.5em;
  background: #1484a0;
  border: 0;
  border-radius: 0.5em;
  font-size: 1rem;
  line-height: 1.2;
  font-family: "Open Sans", sans-serif;
  color: #fff;
  text-align: center;
  text-decoration: none;
  transition: all 0.25s ease-in-out; }
  /* line 233, ../sass/_base.scss */
  .portfolio-list .portfolio-list-button:hover, .portfolio-list .portfolio-list-button:focus, button:hover, button:focus, .button:hover, .button:focus {
    background: #ca3485;
    color: #fff; }
  @media (min-width: 37.5em) {
    /* line 217, ../sass/_base.scss */
    .portfolio-list .portfolio-list-button, button, .button {
      display: table;
      width: auto; } }

/* line 245, ../sass/_base.scss */
.error-message {
  color: #ca3485; }

table {
  max-width: 58rem;
  margin: auto;
}

th {
  text-align: left;
}

tr {
  border-bottom: 1px solid #ddd;
}

thead {
  background: #5b506c;
  color: #fff;
}

td, th {
  padding: 1.5rem 1rem 0.25rem;
}

td:first-child {
  font-weight: bold;
}

.sortable th {
  padding: 0;
}

.sortable .col-sort {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 1.5rem 1rem 0.25rem;
  background: none;
  border-radius: 0;
  font-size: inherit;
  font-weight: bold;
  color: inherit;
}

.sortable .col-sort:hover {
  background: #1484a0;
}

.col-sort::after {
  content: "";
  display: none;
  width: 0;
  height: 0;
  margin-left: 0.5rem;
  border: 0.325rem solid transparent;
}

.sort-ascending .col-sort::after {
  display: block;
  border-top: 0;
  border-bottom: 0.5rem solid #fff;
}

.sort-descending .col-sort::after {
  display: block;
  border-bottom: 0;
  border-top: 0.5rem solid #fff;
}


/* ==========================================================================
   Global Styles
   ========================================================================== */
@-moz-keyframes bodyReveal {
  0% {
    opacity: 0; }
  100% {
    opacity: 1.0; } }
@-webkit-keyframes bodyReveal {
  0% {
    opacity: 0; }
  100% {
    opacity: 1.0; } }
@keyframes bodyReveal {
  0% {
    opacity: 0; }
  100% {
    opacity: 1.0; } }
@-moz-keyframes bodyHide {
  0% {
    opacity: 1.0; }
  100% {
    opacity: 0; } }
@-webkit-keyframes bodyHide {
  0% {
    opacity: 1.0; }
  100% {
    opacity: 0; } }
@keyframes bodyHide {
  0% {
    opacity: 1.0; }
  100% {
    opacity: 0; } }
/* line 11, ../sass/_global.scss */
html {
  height: 100%; }

/* line 15, ../sass/_global.scss */
body {
/*  background: linear-gradient(to bottom, #f5f5f5 0%, #ffffff 100%) fixed #eee;*/
  background: #f5f5f5;
  -moz-animation: bodyReveal 0.2s ease-in-out both;
  -webkit-animation: bodyReveal 0.2s ease-in-out both;
  animation: bodyReveal 0.2s ease-in-out both; }
  /* line 20, ../sass/_global.scss */
  body.fade-out {
    -moz-animation: bodyHide 0.2s ease-in-out both;
    -webkit-animation: bodyHide 0.2s ease-in-out both;
    animation: bodyHide 0.2s ease-in-out both; }
  /* line 24, ../sass/_global.scss */
  body::before {
    content: "";
    display: block;
    height: 22px;
    background: url('../img/zebra-print.svg?1447907341') 50% 75% repeat;
    background-size: 200% auto;
    opacity: 0.075; }
    @media (min-width: 30em) {
      /* line 24, ../sass/_global.scss */
      body::before {
        height: 0;
        padding-top: 5%; } }
    @media (min-width: 56.25em) {
      /* line 24, ../sass/_global.scss */
      body::before {
        background-size: cover; } }
    @media (min-width: 75em) {
      /* line 24, ../sass/_global.scss */
      body::before {
        height: 60px;
        padding-top: 0; } }
  /* line 48, ../sass/_global.scss */
  body.page-home {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-direction: normal;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column;
    -moz-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    min-height: 100%; }

/* line 56, ../sass/_global.scss */
.page-wrap {
  width: 90%;
  max-width: 70rem;
  margin: 0 auto;
  padding: calc(0.75rem + 1.5%) 0 calc(1.5rem + 3%) 0; }
  /* line 62, ../sass/_global.scss */
  .page-home .page-wrap {
    margin-top: auto;
    margin-bottom: auto;
    padding-top: calc(1.5rem + 3%); }
  /* line 68, ../sass/_global.scss */
  .page-portfolio .page-wrap {
    max-width: 86rem; }

/* === Grids === */
/* line 77, ../sass/_global.scss */
.grid {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-direction: normal;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  max-width: 58rem;
  margin-left: auto;
  margin-right: auto; }
  /* line 83, ../sass/_global.scss */
  .grid [class*='col-'] ~ [class*='col-'] {
    margin: 1.5rem 0 0 0; }
  /* line 87, ../sass/_global.scss */
  .grid [class*='col-'] p, .grid [class*='col-'] ul, .grid [class*='col-'] ol {
    max-width: none; }
  @media (min-width: 48em) {
    /* line 77, ../sass/_global.scss */
    .grid {
      -webkit-box-direction: normal;
      -webkit-box-orient: horizontal;
      -webkit-flex-direction: row;
      -moz-flex-direction: row;
      -ms-flex-direction: row;
      flex-direction: row; }
      /* line 98, ../sass/_global.scss */
      .grid [class*='col-'] ~ [class*='col-'] {
        margin: 0 0 0 1.5rem; }
      /* line 104, ../sass/_global.scss */
      .grid .col-quarter {
        width: 25%; }
      /* line 108, ../sass/_global.scss */
      .grid .col-third {
        width: 33.333%; }
      /* line 112, ../sass/_global.scss */
      .grid .col-half {
        width: 50%; }
      /* line 116, ../sass/_global.scss */
      .grid .col-two-thirds {
        width: 66.666%; }
      /* line 120, ../sass/_global.scss */
      .grid .col-three-quarters {
        width: 75%; } }

/* === Logotype === */
/* line 131, ../sass/_global.scss */
.logotype {
  margin: 0 0 calc(0.75rem + 1.5%) 0; }
  /* line 134, ../sass/_global.scss */
  .page-home .logotype {
    margin-bottom: calc(1.5rem + 3%); }

/* line 140, ../sass/_global.scss */
.logotype-name {
  max-width: none;
  margin: 0 0 0.25em 0;
  font-family: "Libre Baskerville", serif;
  font-size: 1.3125rem;
  line-height: 1.1;
  text-transform: uppercase;
  font-weight: normal;
  letter-spacing: 0.25em;
  text-align: center;
  color: #5b506c; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 140, ../sass/_global.scss */
    .logotype-name {
      font-size: calc( 1.3125rem + (2.5 - 1.3125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 140, ../sass/_global.scss */
    .logotype-name {
      font-size: 2.5rem; } }
  /* line 152, ../sass/_global.scss */
  .logotype-name a {
    color: inherit;
    text-decoration: none; }
    /* line 156, ../sass/_global.scss */
    .logotype-name a:hover, .logotype-name a:focus {
      color: #ca3485; }
  /* line 162, ../sass/_global.scss */
  .page-home .logotype-name {
    font-size: 1.3125rem; }
    @media (min-width: 20rem) and (max-width: 75rem) {
      /* line 162, ../sass/_global.scss */
      .page-home .logotype-name {
        font-size: calc( 1.3125rem + (5 - 1.3125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
    @media (min-width: 75rem) {
      /* line 162, ../sass/_global.scss */
      .page-home .logotype-name {
        font-size: 5rem; } }

/* line 168, ../sass/_global.scss */
.logotype-title {
  max-width: none;
  margin: 0;
  font-family: "Libre Baskerville", serif;
  font-style: italic;
  font-weight: normal;
  font-size: 1.125rem;
  line-height: 1.15;
  text-align: center;
  color: #ca3485; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 168, ../sass/_global.scss */
    .logotype-title {
      font-size: calc( 1.125rem + (1.75 - 1.125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 168, ../sass/_global.scss */
    .logotype-title {
      font-size: 1.75rem; } }
  /* line 179, ../sass/_global.scss */
  .page-home .logotype-title {
    font-size: 1.125rem; }
    @media (min-width: 20rem) and (max-width: 75rem) {
      /* line 179, ../sass/_global.scss */
      .page-home .logotype-title {
        font-size: calc( 1.125rem + (2.5 - 1.125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
    @media (min-width: 75rem) {
      /* line 179, ../sass/_global.scss */
      .page-home .logotype-title {
        font-size: 2.5rem; } }

/* === Nav === */
/* line 188, ../sass/_global.scss */
.page-nav {
  margin: calc(0.75rem + 1.5%) 0 0 0; }
  /* line 191, ../sass/_global.scss */
  .page-nav .page-nav-list {
    display: none;
    padding: 0;
    margin: 0; }
    /* line 196, ../sass/_global.scss */
    .page-nav .page-nav-list li {
      -webkit-box-flex: 1;
      -webkit-flex-grow: 1;
      -moz-flex-grow: 1;
      -ms-flex-positive: 1;
      flex-grow: 1;
      margin: 0; }
  /* line 203, ../sass/_global.scss */
  .page-nav a {
    display: block;
    padding: 0.5em 0.75em;
    text-decoration: none;
    color: #87799c;
    text-align: center;
    font-size: 0.875rem; }
    @media (min-width: 20rem) and (max-width: 75rem) {
      /* line 203, ../sass/_global.scss */
      .page-nav a {
        font-size: calc( 0.875rem + (1.125 - 0.875) * ( (100vw - 20rem) / ( 75 - 20) )); } }
    @media (min-width: 75rem) {
      /* line 203, ../sass/_global.scss */
      .page-nav a {
        font-size: 1.125rem; } }
    /* line 211, ../sass/_global.scss */
    .page-nav a:hover, .page-nav a:focus {
      border-color: #1484a0;
      color: #1484a0; }
  /* line 219, ../sass/_global.scss */
  .page-nav .page-nav-toggle::before {
    content: "\e902";
    position: relative;
    top: -0.0625em;
    margin: 0 0.25em 0 0;
    font-family: 'Icons';
    font-size: 1.125em;
    line-height: 1;
    vertical-align: middle; }
  /* line 231, ../sass/_global.scss */
  .page-home .page-nav {
    margin-top: calc(1.5rem + 3%); }
    /* line 234, ../sass/_global.scss */
    .page-home .page-nav a {
      font-size: 0.875rem; }
      @media (min-width: 20rem) and (max-width: 75rem) {
        /* line 234, ../sass/_global.scss */
        .page-home .page-nav a {
          font-size: calc( 0.875rem + (1.25 - 0.875) * ( (100vw - 20rem) / ( 75 - 20) )); } }
      @media (min-width: 75rem) {
        /* line 234, ../sass/_global.scss */
        .page-home .page-nav a {
          font-size: 1.25rem; } }
  /* line 242, ../sass/_global.scss */
  .page-nav.is-open .page-nav-toggle {
    border-color: transparent; }
    /* line 245, ../sass/_global.scss */
    .page-nav.is-open .page-nav-toggle::before {
      content: "\e905";
      font-size: 1.375em; }
  /* line 254, ../sass/_global.scss */
  .page-nav .current a {
    /*border-color: #1484a0;
    color: #1484a0;*/
    border-color: #1484a0;
    background: #1484a0;
    color: #ffffff; }
  @media (max-width: 37.4375em) {
    /* line 261, ../sass/_global.scss */
    .page-nav .page-nav-list {
      padding: 0.5em;
      border-radius: 0.5em;
      border: 1px solid #bcb4c7;
      overflow: hidden; }
      /* line 267, ../sass/_global.scss */
      .page-nav .page-nav-list li:first-child a {
        border-top: 0; }
      /* line 271, ../sass/_global.scss */
      .page-nav .page-nav-list a {
        border-top: 1px solid #bcb4c7; }
    /* line 277, ../sass/_global.scss */
    .page-nav .page-nav-toggle {
      border-radius: 0.5em;
      border: 1px solid #bcb4c7; } }
  @media (min-width: 37.5em) {
    /* line 286, ../sass/_global.scss */
    .page-nav .page-nav-list {
      display: -webkit-box !important;
      display: -webkit-flex !important;
      display: -moz-flex !important;
      display: -ms-flexbox !important;
      display: flex !important;
      -webkit-box-direction: normal;
      -webkit-box-orient: horizontal;
      -webkit-flex-direction: row;
      -moz-flex-direction: row;
      -ms-flex-direction: row;
      flex-direction: row;
      margin: auto; }
      /* line 295, ../sass/_global.scss */
      .page-nav .page-nav-list li {
        -webkit-box-flex: 1;
        -webkit-flex: 1;
        -moz-box-flex: 1;
        -moz-flex: 1;
        -ms-flex: 1;
        flex: 1;
        margin: 1.125%;
        display: flex; }
    /* line 302, ../sass/_global.scss */
    .page-nav a {
      border-radius: 0.5em;
      border: 1px solid #bcb4c7;
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center; }
      /* line 306, ../sass/_global.scss */
      .page-nav a:hover, .page-nav a:focus {
        -moz-transform: translate(0, -0.25em);
        -ms-transform: translate(0, -0.25em);
        -webkit-transform: translate(0, -0.25em);
        transform: translate(0, -0.25em); }
    /* line 312, ../sass/_global.scss */
    .page-nav .page-nav-toggle {
      display: none; } }

/* === Main Content === */
/* line 386, ../sass/_global.scss */
.page-content {
  margin: 0 0 calc(0.75rem + 1.5%) 0;
  padding: calc(1.5rem + 3%) 0; }
  /* line 390, ../sass/_global.scss */
  .page-home .page-content {
    margin: calc(1.5rem + 3%) 0;
    padding: 0;
    border: 0; }
    /* line 395, ../sass/_global.scss */
    .page-home .page-content p, .page-home .page-content ul, .page-home .page-content ol {
      font-size: 0.9125rem; }
      @media (min-width: 20rem) and (max-width: 75rem) {
        /* line 395, ../sass/_global.scss */
        .page-home .page-content p, .page-home .page-content ul, .page-home .page-content ol {
          font-size: calc( 0.9125rem + (1.375 - 0.9125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
      @media (min-width: 75rem) {
        /* line 395, ../sass/_global.scss */
        .page-home .page-content p, .page-home .page-content ul, .page-home .page-content ol {
          font-size: 1.375rem; } }
  @media (min-width: 37.5em) {
    /* line 386, ../sass/_global.scss */
    .page-content {
      margin: calc(0.75rem + 1.5%) 0;
      border-top: 1px solid #bcb4c7; }
      /* line 405, ../sass/_global.scss */
      .page-home .page-content {
        text-align: center; } }

/* === Site Footer === */
/* line 416, ../sass/_global.scss */
.site-footer {
  margin: calc(0.75rem + 1.5%) 0 0 0; }
  /* line 419, ../sass/_global.scss */
  .page-home .site-footer {
    margin-top: calc(1.5rem + 3%); }

/* ==========================================================================
   Form Styles
   ========================================================================== */
/* line 1, ../sass/_forms.scss */
.form {
  max-width: 48rem;
  margin: auto;
  padding: 1.5rem 0.75rem;
  border: 1px solid #bcb4c7;
  border-radius: 1em;
  overflow: hidden;
  transition: background-color 0.25s linear, border-color 0.25s linear; }
  /* line 10, ../sass/_forms.scss */
  .form .question {
    padding: 0.75rem; }
  /* line 14, ../sass/_forms.scss */
  .form .form-submit {
    margin: 0.5rem 0; }
  /* line 18, ../sass/_forms.scss */
  .form .error-message {
    display: none;
    padding: 0.75rem; }
  /* line 23, ../sass/_forms.scss */
  .form .form-success {
    display: none;
    padding: 0.75rem; }
    /* line 26, ../sass/_forms.scss */
    .form .form-success h1, .form .form-success h2, .form .form-success h3, .form .form-success h4, .form .form-success h5 {
      text-align: left; }
  /* line 32, ../sass/_forms.scss */
  .form.has-errors .error-message {
    display: block; }
  /* line 37, ../sass/_forms.scss */
  .form.processing {
    position: relative; }
    /* line 39, ../sass/_forms.scss */
    .form.processing::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: url('../img/loading.svg?1447907337') 50% 50% no-repeat rgba(255, 255, 255, 0.5); }
  /* line 51, ../sass/_forms.scss */
  .form.complete {
    background: rgba(20, 132, 160, 0.125);
    border-color: #1484a0; }
  @media (min-width: 37.5em) and (max-width: 47.9375em), (min-width: 64em) {
    /* line 60, ../sass/_forms.scss */
    .form .question.q-half {
      display: inline-block;
      width: 50%; } }

/* ==========================================================================
   About Page
   ========================================================================== */
/* line 3, ../sass/_about.scss */
.about-content .about-img {
  text-align: center; }
/* line 7, ../sass/_about.scss */
.about-content .about-text {
  padding: 0; }
@media (min-width: 48em) {
  /* line 13, ../sass/_about.scss */
  .about-content .about-text {
    padding-top: 0;
    padding-left: calc(0.75rem + 1.5%); } }

/* ==========================================================================
   Contact Page
   ========================================================================== */
/* line 1, ../sass/_contact.scss */
.contact-options {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-flow: column;
  -moz-flex-flow: column;
  -ms-flex-flow: column;
  flex-flow: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  max-width: none;
  padding: 1.5em 0 0 0;
  border-top: 1px solid #e3e0e8;
  list-style: none;
  font-size: 0.875rem; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 1, ../sass/_contact.scss */
    .contact-options {
      font-size: calc( 0.875rem + (1.125 - 0.875) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 1, ../sass/_contact.scss */
    .contact-options {
      font-size: 1.125rem; } }
  /* line 11, ../sass/_contact.scss */
  .page-home .contact-options {
    padding-top: 0;
    border: 0; }
  /* line 16, ../sass/_contact.scss */
  .contact-options li {
    margin: 0;
    padding: 0 0.5em 0.5em 0;
    text-align: center; }
  /* line 22, ../sass/_contact.scss */
  .contact-options a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    text-decoration: none; }
    /* line 26, ../sass/_contact.scss */
    .contact-options a::before {
      content: "";
      display: block;
      width: 1.25em;
      height: 1.25em;
      font-family: 'Icons';
      font-size: 1.25em;
      line-height: 1.25em; }
    .contact-options a::after {
      display: none;
    }
  /* line 38, ../sass/_contact.scss */
  .contact-options .contact-resume a::before {
    content: "\e900"; }
  /* line 41, ../sass/_contact.scss */
  .contact-options .contact-phone a::before {
    content: "\e904"; }
  /* line 44, ../sass/_contact.scss */
  .contact-options .contact-email a::before {
    content: "\e903"; }
  /* line 47, ../sass/_contact.scss */
  .contact-options .contact-twitter a::before {
    content: "\ea96"; }
  /* line 50, ../sass/_contact.scss */
  .contact-options .contact-linkedin a::before {
    content: "\eac9"; }
  @media (min-width: 37.5em) {
    /* line 1, ../sass/_contact.scss */
    .contact-options {
      -webkit-flex-flow: row wrap;
      -moz-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
      flex-flow: row wrap;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      -webkit-justify-content: center;
      -moz-justify-content: center;
      justify-content: center;
      border-top-color: #f5f4f7; }
      /* line 60, ../sass/_contact.scss */
      .contact-options li {
        padding: 0 1em;
        border-left: 1px solid #e3e0e8;
        text-align: left; }
        /* line 65, ../sass/_contact.scss */
        .contact-options li:first-child {
          border-left: 0; } }

/* ==========================================================================
   Portfolio Page
   ========================================================================== */
/* line 1, ../sass/_portfolio.scss */
.portfolio-section {
  padding: 0 0 1.25rem 0;
  overflow: hidden;
  border-bottom: 1px solid #fff; }
  /* line 6, ../sass/_portfolio.scss */
  .portfolio-section:last-child {
    padding-bottom: 0;
    border-bottom: 0; }
  /* line 11, ../sass/_portfolio.scss */
  .portfolio-section .portfolio-section-title {
    margin: 1.5em 0 1.5rem; }

/* line 17, ../sass/_portfolio.scss */
.portfolio-list {
  max-width: none;
  margin: 0;
  padding: 0;
  list-style: none; }
  /* line 23, ../sass/_portfolio.scss */
  .portfolio-list p, .portfolio-list ul, .portfolio-list ol {
    font-size: 0.9125rem;
    margin: 0.5rem 0; }
    @media (min-width: 20rem) and (max-width: 75rem) {
      /* line 23, ../sass/_portfolio.scss */
      .portfolio-list p, .portfolio-list ul, .portfolio-list ol {
        font-size: calc( 0.9125rem + (1.0625 - 0.9125) * ( (100vw - 20rem) / ( 75 - 20) )); } }
    @media (min-width: 75rem) {
      /* line 23, ../sass/_portfolio.scss */
      .portfolio-list p, .portfolio-list ul, .portfolio-list ol {
        font-size: 1.0625rem; } }
  /* line 28, ../sass/_portfolio.scss */
  .portfolio-list a {
    text-decoration: none; }
    /* line 30, ../sass/_portfolio.scss */
    .portfolio-list a:hover {
      text-decoration: underline; }
  /* line 35, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-list-item {
    display: block;
    margin: 0 0 5% 0;
    padding: 0; }
    /* line 40, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-list-item::before {
      content: "";
      display: table; }
  /* line 47, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-list-link {
    display: block;
    margin: 1.375rem 0 0 0;
    padding: 1px;
    background: #fff;
    color: inherit; }
    /* line 54, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-list-link:hover, .portfolio-list .portfolio-list-link:focus {
      text-decoration: none; }
      /* line 57, ../sass/_portfolio.scss */
      .portfolio-list .portfolio-list-link:hover .portfolio-list-title, .portfolio-list .portfolio-list-link:focus .portfolio-list-title {
        color: #1484a0; }
      /* line 63, ../sass/_portfolio.scss */
      .no-touch .portfolio-list .portfolio-list-link:hover .portfolio-list-img-wrap, .no-touch .portfolio-list .portfolio-list-link:focus .portfolio-list-img-wrap {
        background: #fff;
        -moz-transform: scale(1.0625);
        -ms-transform: scale(1.0625);
        -webkit-transform: scale(1.0625);
        transform: scale(1.0625); }
      /* line 68, ../sass/_portfolio.scss */
      .no-touch .portfolio-list .portfolio-list-link:hover .portfolio-list-img, .no-touch .portfolio-list .portfolio-list-link:focus .portfolio-list-img {
        opacity: 0.25; }
      /* line 72, ../sass/_portfolio.scss */
      .no-touch .portfolio-list .portfolio-list-link:hover .portfolio-list-button, .no-touch .portfolio-list .portfolio-list-link:focus .portfolio-list-button {
        opacity: 1.0; }
      /* line 76, ../sass/_portfolio.scss */
      .no-touch .portfolio-list .portfolio-list-link:hover .portfolio-list-text, .no-touch .portfolio-list .portfolio-list-link:focus .portfolio-list-text {
        -moz-transform: scale(0.9375);
        -ms-transform: scale(0.9375);
        -webkit-transform: scale(0.9375);
        transform: scale(0.9375);
        opacity: 0.75; }
  /* line 87, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-list-title {
    margin: 0 0 0.5rem 0;
    text-align: center;
    transition: all 0.25s ease-in-out; }
    /* line 92, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-list-title + * {
      margin-top: 0.5rem; }
  /* line 98, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-list-img-wrap {
    position: relative;
    display: block;
    width: 12.625rem;
    margin: -1.375rem auto 0 auto;
    padding: 0.5rem;
    border: 1px solid #bcb4c7;
    transition: all 0.25s ease-in-out; }
  /* line 108, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-list-img {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    transition: all 0.25s ease-in-out; }
  /* line 117, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-list-button {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    width: 14em;
    height: 3.2em;
    margin: auto;
    font-size: 0.75em;
    opacity: 0;
    transition: all 0.25s ease-in-out; }
    /* line 132, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-list-button, .portfolio-list .portfolio-list-button:hover, .portfolio-list .portfolio-list-button:focus {
      background: #1484a0; }
  /* line 138, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-list-text {
    display: block;
    padding: 5%;
    transition: all 0.25s ease-in-out; }
  /* line 144, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-pw-warning {
    color: #ca3485; }
    /* line 147, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-pw-warning::before {
      content: "";
      margin: 0 0.25em 0 0;
      font-family: 'Icons'; }
    /* line 153, ../sass/_portfolio.scss */
    .has-access .portfolio-list .portfolio-pw-warning {
      display: none; }
  /* line 159, ../sass/_portfolio.scss */
  .portfolio-list .portfolio-list-item-footer {
    padding: 0 5%; }
  @media (min-width: 30em) and (max-width: 37.4375em) {
    /* line 167, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-list-item a {
      display: -webkit-box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: start;
      -ms-flex-align: start;
      -webkit-align-items: flex-start;
      -moz-align-items: flex-start;
      align-items: flex-start;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      -webkit-justify-content: space-between;
      -moz-justify-content: space-between;
      justify-content: space-between;
      margin: 5% 0 0 5%;
      text-align: left; }
    /* line 177, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-list-title {
      text-align: left; }
    /* line 181, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-list-img-wrap {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
      -moz-box-flex: 0;
      -moz-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
      flex: 0 0 auto;
      width: 40%;
      margin: -5% 0 2.5% -5%; }
    /* line 187, ../sass/_portfolio.scss */
    .portfolio-list .portfolio-list-text {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 auto;
      -moz-box-flex: 1;
      -moz-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
      flex: 1 1 auto; } }
  @media (min-width: 37.5em) {
    /* line 17, ../sass/_portfolio.scss */
    .portfolio-list {
      display: -webkit-box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-wrap: wrap;
      -moz-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      -webkit-justify-content: center;
      -moz-justify-content: center;
      justify-content: center;
      max-width: 43.75rem;
      margin: auto; }
      /* line 200, ../sass/_portfolio.scss */
      .portfolio-list .portfolio-list-item {
        width: 48%;
        margin-left: 1%;
        margin-right: 1%; }
        /* line 205, ../sass/_portfolio.scss */
        .portfolio-list .portfolio-list-item a {
          margin-top: 7.5%; }
      /* line 211, ../sass/_portfolio.scss */
      .portfolio-list .portfolio-list-img-wrap {
        width: 90%;
        margin-top: -7.5%; } }
  @media (min-width: 64em) {
    /* line 17, ../sass/_portfolio.scss */
    .portfolio-list {
      max-width: none; }
      /* line 221, ../sass/_portfolio.scss */
      .portfolio-list .portfolio-list-item {
        width: 31.333%; } }

/* line 229, ../sass/_portfolio.scss */
.portfolio-page-back {
  display: block;
  max-width: 35em;
  margin: auto;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid #fff;
  font-size: 0.875rem;
  text-align: center;
  text-decoration: none; }
  @media (min-width: 20rem) and (max-width: 75rem) {
    /* line 229, ../sass/_portfolio.scss */
    .portfolio-page-back {
      font-size: calc( 0.875rem + (1.0625 - 0.875) * ( (100vw - 20rem) / ( 75 - 20) )); } }
  @media (min-width: 75rem) {
    /* line 229, ../sass/_portfolio.scss */
    .portfolio-page-back {
      font-size: 1.0625rem; } }
  /* line 239, ../sass/_portfolio.scss */
  .portfolio-page-back::before {
    content: "\2039 \2039";
    margin-right: 0.5em; }

/* line 246, ../sass/_portfolio.scss */
.portfolio-page-title {
  margin-top: 2rem; }

/* line 250, ../sass/_portfolio.scss */
.private-form {
  max-width: 38rem;
  margin: 1.5rem auto; }
  /* line 254, ../sass/_portfolio.scss */
  .private-form .error-message {
    display: none; }

/* line 260, ../sass/_portfolio.scss */
.private-content {
  display: none; }

.bookshelf-process-col h3 {
  margin-top: 1.5em;
}

.book-list td {
  width: 50%;
  vertical-align: bottom;
}

@media (max-width: 31.1875em) {

  .book-list thead {
    background: transparent;
    color: #5b506c;
  }

  .book-list .col-sort {
    padding: 0.25rem 1rem;
    background: #eee;
    border: 1px solid transparent;
    border-radius: 3rem;
  }

  .book-list .col-sort:hover {
    background: #eee;
    color: #1484a0;
  }

  .book-list th {
    padding-right: 0.5rem;
  }

  .book-list .sort-ascending .col-sort,
  .book-list .sort-descending .col-sort {
    background: #fff !important;
    border: 1px solid #1484a0;
    color: #1484a0;
  }

  .book-list .sort-ascending .col-sort::after {
    border-bottom-color: #1484a0;
  }

  .book-list .sort-descending .col-sort::after {
    border-top-color: #1484a0;
  }

  .book-list tr {
    display: block;
    padding: 0.5rem 0;
  }

  .book-list td {
    display: block;
    width: auto;
    padding: 0;
  }

}

@media (min-width: 48em) {

  .bookshelf-process {
    padding: 2.5% 0;
  }

  .bookshelf-process-col {
    margin: 0 !important;
    padding: 0 5%;
  }

  .bookshelf-process-col:first-child {
    padding-left: 0;
    border-right: 1px solid #ddd;
  }

  .bookshelf-process-col:last-child {
    padding-right: 0;
    border-left: 1px solid #fff;
  }

  .bookshelf-process-col h3 {
    margin-top: 0;
  }

}

.talks-nav {
  position: sticky;
  top: -1px;
  z-index: 10;
  max-width: 58rem;
  padding: 0.5rem 0;
  margin: 0 auto 2rem;
  background: #f5f5f5;
  border-bottom: 1px solid #DBCEDE;
  border-top: 1px solid #DBCEDE;
  transition: all 0.25s ease-in-out;
}

#talks-podcasts, #talks-conferences, #talks-articles {
  margin-top: 0;
  padding-top: 5%;
}

.talks-nav.hidden {
  opacity: 0;
}

.talks-nav ul {
  display: flex;
  justify-content: center;
  margin: 0 auto;
  padding: 0;
  font-size: 0.675rem;
}

.talks-nav li {
  margin: 0;
}

.talks-nav a {
  padding: 0.125em 1em;
  border-left: 1px solid #DBCEDE;
  text-decoration: none;
}

.talks-nav li:first-child a {
  border-left: 0;
}

.talks-nav-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-bottom: 1px solid #DBCEDE;
/*  border-radius: 0 0 0.5rem 0.5rem;*/
  box-shadow: 0 3px 12px rgba(0,0,0,0.25);
}

.talks-nav-sticky a {
  font-size: 0.875em;
}

.talk-list {
  display: block;
  margin-top: -0.5rem;
  padding: 0;
  list-style: none;
}

.talk {
  margin: 1rem 0;
  padding: 1.5rem 1rem;
/*  border-top: 1px solid #DBCEDE;*/
  background: #ffffff;
  border: 1px solid #DBCEDE;
  border-radius: 0.5rem;
}

/*.talk:first-child {
  border: 0;
}*/

.talk p {
  line-height: 1.2;
}

.talk-title {
  margin: 1rem 0;
  font-size: 1.125rem;
}

.talk-format {
}

.talk-links {
  font-weight: bold;
}

.talk-links span {
  display: block;
  margin: 0.5rem 0;
  font-size: 0.825em;
}

.talk-links a {
  text-decoration: none;
}

.talk-details {
  display: block;
  padding: 1rem 0 0;
  margin: 1.5rem 0 0 !important;
  border-top: 1px solid #f5f4f7;
  line-height: 1.2;
  font-weight: bold;
}

.talk-details span {
  font-size: 0.825em;
  padding: 0.25rem 0;
}

.talk-details span:first-child {
  padding-top: 0;
}

@media (max-width: 47.9375rem) {

  .talk-details .talk-date {
    display: block;
  }

  .talk-details .talk-host {
    display: inline;
  }

  .talk-details .talk-location {
    display: inline;
  }

  .talk-details .talk-location::before {
    content: "\002013";
    margin-right: 0.375em;
  }

}

@media (min-width: 20rem) and (max-width: 75rem) {
  .talks-nav ul {
    font-size: calc( 0.675rem + (1.25 - 0.675) * ( (100vw - 20rem) / ( 75 - 20) ));
  }
  .talk-title {
    font-size: calc( 1rem + (1.5 - 1) * ( (100vw - 20rem) / ( 75 - 20) ));
  }
}

@media (min-width: 48rem) {

  .talk {
    position: relative;
  }

  .talk-content {
    display: flex;
  }

  .talk-details {
    display: flex;
    margin-top: 2rem !important;
  }

  .talk-details span {
    padding: 0 0.75rem;
    border-left: 1px solid #DBCEDE;
  }

  .talk-details span:first-child {
    padding-left: 0;
    border: 0;
  }

  .talk-content-main {
    flex: 1;
  }

  .talk-links {
    margin: 0 0.5rem 0 10%;
    text-align: right;
  }

  .talk-links span {
    font-size: 0.75em;
  }

}

@media (min-width: 75rem) {
  .talks-nav ul {
    font-size: 1.25rem;
  }
  .talk-title {
    font-size: 1.5rem;
  }
}

.directory-content {
  max-width: 58rem;
  margin: auto;
}

.directory-col {
  margin-bottom: 2.125rem;
}

.directory-heading {
  display: flex;
}

.directory-flag {
  width: 4.5rem;
  margin: 0;
}

.directory-heading-text {
  padding: 0.6875rem 0 0 1rem;
}

@media (min-width: 37.5rem) {

  .directory-content {
    display: flex;
    gap: 10%;
  }

  .directory-col {
    flex: 1;
  }

}

.combo *,
.combo *::before,
.combo *::after {
  box-sizing: border-box;
}

.combo {
  display: block;
  margin-bottom: 1.5em;
  max-width: 400px;
  position: relative;
}

.combo::after {
  border-bottom: 2px solid rgb(0 0 0 / 75%);
  border-right: 2px solid rgb(0 0 0 / 75%);
  content: "";
  display: block;
  height: 12px;
  pointer-events: none;
  position: absolute;
  right: 16px;
  top: 65%;
  transform: translate(0, -65%) rotate(45deg);
  width: 12px;
}

.combo-input {
  background-color: #f5f5f5;
  border: 2px solid rgb(0 0 0 / 75%);
  border-radius: 4px;
  display: block;
  font-size: 1em;
  min-height: calc(1.4em + 26px);
  padding: 12px 16px 14px;
  text-align: left;
  width: 100%;
}

.open .combo-input {
  border-radius: 4px 4px 0 0;
}

.combo-input:focus {
  border-color: #0067b8;
  box-shadow: 0 0 4px 2px #0067b8;
  outline: 4px solid transparent;
}

.combo-label {
  display: block;
  font-weight: 100;
  margin-bottom: 0.25em;
  font-size: 1.2em;
}

.combo-menu {
  background-color: #f5f5f5;
  border: 1px solid rgb(0 0 0 / 75%);
  border-radius: 0 0 4px 4px;
  display: none;
  max-height: 300px;
  overflow-y: scroll;
  left: 0;
  position: absolute;
  top: 100%;
  width: 100%;
  z-index: 100;
}

.open .combo-menu {
  display: block;
}

.combo-option {
  padding: 10px 12px 12px;
}

.combo-option:hover {
  background-color: rgb(0 0 0 / 10%);
}

.combo-option.option-current {
  outline: 3px solid #0067b8;
  outline-offset: -3px;
}

.combo-option[aria-selected="true"] {
  padding-right: 30px;
  position: relative;
}

.combo-option[aria-selected="true"]::after {
  border-bottom: 2px solid #000;
  border-right: 2px solid #000;
  content: "";
  height: 16px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translate(0, -50%) rotate(45deg);
  width: 8px;
}
