/**
 * Motif v4.0.0
 * A responsive front-end framework to tell *your* story
 * http://getmotif.com
 */
/**
 * Global Stylesheet
 * The site's main (and perhaps only) stylesheet. All supporting stylesheet 
 * files are imported into and compiled from here.
 */
.background__curtain-black {
  background: #231F20 !important;
}
.background__att-red {
  background: #C60223 !important;
}
.background__warm-gray {
  background: #F1EFF0 !important;
}
.background__warm-dark-gray {
  background: #E3E0E1 !important;
}
.background__dark-gray {
  background: #505050 !important;
}
.background__white {
  background: #fff !important;
}
.background__upstage-envy {
  background: #028475 !important;
}
.background__gregarious-green {
  background: #014E4B !important;
}
.background__ballet-purple {
  background: #7E138D !important;
}
.background__rhythmic-purple {
  background: #43093F !important;
}
.background__mist-blue {
  background: #4B81D6 !important;
}
.background__bright-blue {
  background: #0157DD !important;
}
.background__yellow-glow {
  background: #E8B877 !important;
}
.background__foil-orange {
  background: #B7540C !important;
}
.background__murrey {
  background: #9B004E !important;
}
.background__drama {
  background: #600524 !important;
}
.background__aria-blue {
  background: #036899 !important;
}
.background__tragedy {
  background: #022884 !important;
}
/*
The above loops generate the following classes:
.background__curtain-black
.background__att-red
.background__warm-gray
.background__warm-dark-gray
.background__dark-gray
.background__white
.background__upstage-envy
.background__gregarious-green
.background__ballet-purple
.background__rhythmic-purple
.background__mist-blue
.background__bright-blue
.background__yellow-glow
.background__foil-orange
.background__murrey
.background__drama
.background__aria-blue
.background__tragedy
.background__alert-low
.background__alert-med
*/
.background__overlay {
  position: relative;
}
.background__overlay::before {
  background: rgba(0, 0, 0, 0.5);
  content: '';
  position: absolute;
  height: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
}
.background__overlay--after {
  position: relative;
}
.background__overlay--after::after {
  background: rgba(0, 0, 0, 0.5);
  content: '';
  position: absolute;
  height: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
}
.background__alert-neutral {
  background: #9F9F9F;
}
.background__alert-low {
  background: #0157DD;
}
.background__alert-medium {
  background: #DDBB01;
}
.background__alert-neutral .wysiwyg,
.background__alert-low .wysiwyg,
.background__alert-medium .wysiwyg {
  padding-right: 40px;
  flex: 1;
}
.color__curtain-black {
  color: #231F20 !important;
}
.color__att-red {
  color: #C60223 !important;
}
.color__warm-gray {
  color: #F1EFF0 !important;
}
.color__warm-dark-gray {
  color: #E3E0E1 !important;
}
.color__dark-gray {
  color: #505050 !important;
}
.color__white {
  color: #fff !important;
}
.color__upstage-envy {
  color: #028475 !important;
}
.color__gregarious-green {
  color: #014E4B !important;
}
.color__ballet-purple {
  color: #7E138D !important;
}
.color__rhythmic-purple {
  color: #43093F !important;
}
.color__mist-blue {
  color: #4B81D6 !important;
}
.color__bright-blue {
  color: #0157DD !important;
}
.color__yellow-glow {
  color: #E8B877 !important;
}
.color__foil-orange {
  color: #B7540C !important;
}
.color__murrey {
  color: #9B004E !important;
}
.color__drama {
  color: #600524 !important;
}
.color__aria-blue {
  color: #036899 !important;
}
.color__tragedy {
  color: #022884 !important;
}
/*
The above loops generate the following classes:
.color__curtain-black
.color__att-red
.color__warm-gray
.color__warm-dark-gray
.color__dark-gray
.color__white
.color__upstage-envy
.color__gregarious-green
.color__ballet-purple
.color__rhythmic-purple
.color__mist-blue
.color__bright-blue
.color__yellow-glow
.color__foil-orange
.color__murrey
.color__drama
.color__aria-blue
.color__tragedy
*/
:root {
  --brand-1: #231F20;
  --brand-2: #C60223;
  --brand-3: #F1EFF0;
  --brand-4: #E3E0E1;
  --brand-6: #505050;
  --secondary-1: #028475;
  --secondary-2: #014E4B;
  --secondary-3: #7E138D;
  --secondary-4: #43093F;
  --secondary-5: #4B81D6;
  --secondary-6: #0157DD;
  --secondary-7: #E8B877;
  --secondary-8: #B7540C;
  --secondary-9: #9B004E;
  --secondary-10: #600524;
  --secondary-11: #036899;
  --secondary-12: #022884;
  --brandbar-height: 0;
  --alert-height: 0;
}
.ticketdfw {
  --brand-1: #3F4C55;
  --brand-2: #DB6B35;
  --brand-3: #FF9A19;
  --secondary-1: var(--brand-2);
  --secondary-2: var(--brand-1);
  --secondary-3: var(--brand-2);
  --secondary-4: var(--brand-1);
  --secondary-5: var(--brand-2);
  --secondary-6: var(--brand-1);
  --secondary-7: var(--brand-2);
  --secondary-8: var(--brand-1);
  --secondary-9: var(--brand-2);
  --secondary-10: var(--brand-1);
  --secondary-11: var(--brand-2);
  --secondary-12: var(--brand-1);
}
:root,
[data-theme="free"],
[data-theme="default"] {
  --theme-primary: var(--brand-2);
  --theme-secondary: var(--brand-1);
}
[data-theme="speakers"] {
  --theme-primary: var(--secondary-1);
  --theme-secondary: var(--secondary-2);
}
[data-theme="music"] {
  --theme-primary: var(--secondary-3);
  --theme-secondary: var(--secondary-4);
}
[data-theme="family"] {
  --theme-primary: var(--secondary-5);
  --theme-secondary: var(--secondary-6);
}
[data-theme="dance"] {
  --theme-primary: var(--secondary-7);
  --theme-secondary: var(--secondary-8);
}
[data-theme="comedy"] {
  --theme-primary: var(--secondary-9);
  --theme-secondary: var(--secondary-10);
}
[data-theme="broadway"],
[data-theme="broadway-theatre"] {
  --theme-primary: var(--secondary-11);
  --theme-secondary: var(--secondary-12);
}
[data-theme="ticketdfw"] {
  --theme-primary: var(--brand-2);
  --theme-secondary: var(--brand-1);
}
[data-theme="immersive"] {
  --theme-primary: var(--brand-6);
  --theme-secondary: var(--brand-1);
}
.shadows__warm-dark-gray {
  filter: drop-shadow(0.1875rem 0.5rem 1.0625rem #E3E0E1);
}
.shadows__dark-gray {
  filter: drop-shadow(0.1875rem 0.5rem 1.0625rem #505050);
}
.shadows__warm-gray {
  filter: drop-shadow(0.1875rem 0.5rem 1.0625rem #F1EFF0);
}
.shadows__event-card--grid {
  box-shadow: 0.1875rem 0.5rem 1.0625rem #00000029;
}
/*

Dynamic Responsive Image

*/
.m-images__image-as-bg {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  position: absolute;
  top: 0;
  left: 0;
}
.no-objectfit .m-images__image-as-bg {
  height: auto;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
}
/*
  @param array: Comma-separated key value pairs representing the name of the class and the CSS value (i.e. 'red' #FF0000, 'black' #000000)
  @param i: Index in the array (defaults to 1) 
  @param property: Name of the CSS property (i.e. background, color)
*/
/**
 * Normalize
 * Using the Normalize.css (http://necolas.github.io/normalize.css/) with only minor modification.
 */
/*

HTML5 Display Definitions

Set the appropriate `display` definitions for new HTML5 elements.

The majority will be displayed `block`.

*/
*,
*:before,
*:after {
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}
[x-cloak],
[hidden] {
  display: none !important;
}
/*

Type

*/
/*

HTML Font Size Adjust

1. Corrects text resizing oddly in IE6/7 when body `font-size` is set using
   `em` units.
2. Prevents iOS text size adjust after orientation change, without disabling
   user zoom.

*/
html {
  font-size: 100%;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 2 */
}
html,
button,
input,
select,
textarea {
  font-family: sans-serif;
}
abbr[title] {
  border: none;
}
i,
cite,
address {
  font-style: normal;
}
dfn {
  font-style: italic;
}
b {
  font-weight: normal;
}
strong {
  font-weight: bold;
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
pre,
blockquote,
menu,
ul,
ol,
dl,
table,
figure {
  /* Display & Box Model */
  margin: 1.25rem 0 0 0;
  /* Other */
  font-size: 1em;
}
menu,
ol,
ul {
  padding-left: 2.5em;
}
li ul,
li ol {
  margin-top: 0.625em;
  margin-bottom: 0.625em;
}
dd {
  margin-left: 2.5em;
}
blockquote {
  padding: 1.25em 2.5em;
}
blockquote > :first-child {
  margin-top: 0;
}
q {
  quotes: none;
}
q:before,
q:after {
  content: "";
  content: none;
}
mark {
  background: #ff0;
  color: #000;
}
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em;
}
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word;
}
small {
  font-size: 1em;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
/*

Unstyled List

A basic stripping of list styles.

*/
.lists__unstyled,
.lists__horizontal,
.lists__horizontal--forceful,
.lists__horizontal--links,
.lists__horizontal--pgs,
.lists__breadcrumb-list,
.lists__horizontal--buttons {
  padding-left: 0;
  list-style: none outside none;
}
/*

Horizontal List

The basic horizontal list module simply removes bullets from lists and inlines the list 
items, making the link `inline-block`. The idea is to give the skeleton of a 
horizontal list/navigation without adding too much style (yet).

*/
.lists__horizontal li,
.lists__horizontal--links li,
.lists__horizontal--pgs li,
.lists__breadcrumb-list li,
.lists__horizontal--buttons li {
  display: inline;
}
.lists__horizontal a,
.lists__horizontal--links a,
.lists__horizontal--pgs a,
.lists__breadcrumb-list a,
.lists__horizontal--buttons a {
  display: inline-block;
}
/*

Horizontal List (Forceful)

Rather than making the list `inline-block`, it floats the list elements 
(except on the smallest screen sizes, where it remains vertical). More precise
than the default Horizontal List.

*/
@media all and (min-width: 30em) {
  .lists__horizontal--forceful:before,
  .lists__horizontal--forceful:after {
    content: "\0020";
    height: 0;
    display: block;
    overflow: hidden;
  }
  .lists__horizontal--forceful:after {
    clear: both;
  }
}
.lists__horizontal--forceful li {
  display: block;
}
@media all and (min-width: 30em) {
  .lists__horizontal--forceful li {
    float: left;
  }
}
.lists__horizontal--forceful a {
  display: block;
}
/*

Link List

A basic extension of the Horizontal List, this adds some margin to the links in
the list for a more pleasant looking list of links.

````link-list
<ul class="lists__horizontal--links">
    <li>
        <a href="#">Basic Link</a>
    </li>
    <li>
        <a href="#">Basic Link</a>
    </li>
    <li>
        <a href="#">Basic Link</a>
    </li>
</ul>
````

*/
.lists__horizontal--links a {
  margin-right: 30px;
}
.lists__horizontal--links li:last-child a {
  margin-right: 0;
}
/*

Pagination

An extension of the basic horizontal list module that simply adds enough padding on
the links for pagination.

*/
.lists__horizontal--pgs a {
  padding: 0 0.625em;
}
.lists__horizontal--pgs a,
.lists__horizontal--pgs a:hover,
.lists__horizontal--pgs a:focus {
  color: inherit;
}
/*

Breadcrumb

Another extension of the horizontal list module, adding a breadcrumb `label` 
and floating it and the ordered list.

````breadcrumb
<nav class="lists__breadcrumb" role="navigation">
    <ol class="lists__breadcrumb-list">
        <li>
            <a href="#">Breadcrumb Link</a>
        </li>
        <li>
            <a href="#">Breadcrumb Link</a>
        </li>
        <li>
            <a>Breadcrumb Link</a>
        </li>
    </ol>
</nav>
````

*/
.lists__breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
}
.lists__breadcrumb-list li {
  margin-right: 0.1875rem;
}
.lists__breadcrumb-list li:first-child:before {
  display: none;
}
.lists__breadcrumb-list li [aria-current="page"] {
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  pointer-events: none;
}
.lists__breadcrumb-list li + li:before {
  display: inline-block;
  margin: 0px 0.1875rem;
  transform: rotate(15deg);
  border-right: 0.1em solid #fff;
  height: 0.8em;
  content: "";
}
.lists__breadcrumb-list a {
  color: #fff;
  text-decoration: none;
}
/*

Button List

````button-list
<ul class="lists__horizontal--buttons">
    <li>
        <a class="btn--primary" href="#">Button</a>
    </li>
    <li>
        <a class="btn--primary is-current" href="#">Button</a>
    </li>
    <li>
        <a class="btn--primary" href="#">Button</a>
    </li>
</ul>
````

*/
.lists__horizontal--buttons {
  margin-top: 0;
  overflow: hidden;
}
.lists__horizontal--buttons li {
  display: block;
  float: left;
}
.lists__horizontal--buttons a {
  display: block;
}
/*

Ratios

Ratios are used primarily for objects that must scale in both width and height
proportionally, such as embedded videos.

See: (http://daverupert.com/2012/04/uncle-daves-ol-padded-box/)

The `.ratios__` dimension class is placed on a wrapping element, with 
its child contents wrapped by the `.ratios__content` class.

    <div class="ratios__square">
        <div class="ratios__content">
            ...
        </div>
    </div>

For embedded videos, use the `.ratios__video` class, and it will assume an 
`iframe` is the direct child:

    <div class="ratios__video">
        <iframe src="http://youtube.com/myVidEmbed"></iframe>
    </div>

*/
.ratios__base:before,
.ratios__video:before,
.ratios__default:before,
.ratios__1x1:before,
.ratios__square:before,
.ratios__2x1:before,
.ratios__1x2:before,
.ratios__4x3:before,
.ratios__3x4:before {
  content: "";
}
.ratios__video:before {
  padding-top: 56.25%;
}
.ratios__default:before {
  padding-top: 55.3030303%;
}
.ratios__1x1:before,
.ratios__square:before {
  padding-top: 100%;
}
.ratios__2x1:before {
  padding-top: 50%;
}
.ratios__1x2:before {
  padding-top: 200%;
}
.ratios__4x3:before {
  padding-top: 75%;
}
.ratios__3x4:before {
  padding-top: 133.33333333%;
}
.ratios__content,
.ratios__video > iframe {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*

Figures

Great for integrating images into bodies of text, the `.media__figure` class is 
modified by the `--left` and `--right` keywords depending on where you would 
like it placed.

````plain-media
<figure class="media__figure">
    <img src="http://placehold.it/800x444" alt="A full-width photo">
</figure>
````

````captioned-media
<figure class="media__figure">
    <img src="http://placehold.it/800x444" alt="A full-width photo with a caption">
    <figcaption class="media__figcaption">This caption enhances the photo above. It should only be a brief sentence or two long.</figcaption>
</figure>
````

*/
.media__figure,
[class*="media__figure--"] {
  margin-top: 1.25em;
}
@media all and (min-width: 30em) {
  [class*="media__figure--"] {
    margin-top: 0;
    max-width: 50%;
  }
  .media__figure--left,
  .media__figure--right {
    padding-bottom: 0.625rem;
  }
  .media__figure--left {
    float: left;
    padding-right: 1.5rem;
  }
  .media__figure--right {
    float: right;
    padding-left: 1.5rem;
  }
}
.icons__icon {
  width: 1em;
  height: 1em;
  display: inline-block;
  vertical-align: text-bottom;
  fill: currentColor;
}
.no-svg .icons__icon {
  display: none;
}
svg:not(:root) {
  overflow: hidden;
}
.lte7 img {
  -ms-interpolation-mode: bicubic;
}
.images__figure-as-bg {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
  margin: 0;
}
.images__figure-as-bg img,
.images__figure-as-bg video,
.images__figure-as-bg .video,
.images__figure-as-bg iframe {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  position: absolute;
  top: 0;
  left: 0;
}
.no-objectfit .images__figure-as-bg img,
.no-objectfit .images__figure-as-bg video,
.no-objectfit .images__figure-as-bg .video,
.no-objectfit .images__figure-as-bg iframe {
  height: auto;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
}
.images__figure-ratio {
  position: relative;
  width: 100%;
  margin: 0;
}
.images__figure-ratio:before {
  content: '';
  width: 100%;
  display: block;
}
.images__image-as-bg,
.images__figure-ratio img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  position: absolute;
  top: 0;
  left: 0;
}
.no-objectfit .images__image-as-bg,
.no-objectfit .images__figure-ratio img {
  height: auto;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
}
audio,
canvas,
video {
  display: inline-block;
}
.lte7 audio,
.lte7 canvas,
.lte7 video {
  display: inline;
  zoom: 1;
}
/*

Audio

From Normalize.css:

> Prevents modern browsers from displaying `audio` without controls.
> Remove excess height in iOS5 devices.

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

Font Declarations

Using the `.web-font` and `.web-font-svg` mixins, declare webfonts using the 
"bulletproof" `@font-face` syntax.

See: (http://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax/)

*/
/* Imported Fonts
==========================*/
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU7NSg.ttf) format('truetype');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_m07NSg.ttf) format('truetype');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_TknNSg.ttf) format('truetype');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_KUnNSg.ttf) format('truetype');
}
@font-face {
  font-family: 'GT America';
  src: url('/fonts/GTAmerica/GT-America-Expanded-Black.woff2') format('woff2'), url('/fonts/GTAmerica/GT-America-Expanded-Black.woff') format('woff'), url('/fonts/GTAmerica/GT-America-Expanded-Black.ttf') format('truetype');
  font-weight: normal;
  font-display: swap;
}
/*

Font Classes

Each font family and weight used in the site is given its own LEGO-block class
to enable quick use and modularity.

*/
/*

Heading Styles

In Motif, typography is broken into pieces that separate skin from structure.
In this case, that means the font sizing (structure) is separate from the 
styling (skin) -- which includes font family, color, etc.

Heading styles are some of the type skins, and we start out with 
`.primary-heading` (which is also the `h`-tag default) and 
`.secondary-heading`. Add as necessary.

````primary-heading
<h1 class="primary-heading">Primary Heading</h1>
````

*/
.styles__h1,
.styles__h2,
.styles__h3,
.styles__h4,
.styles__h5,
.styles__h6 {
  margin-top: 0;
  margin-bottom: 0;
  color: #231F20;
  font-weight: 800;
}
.styles__h1.styles__gt-america,
.styles__h2.styles__gt-america,
.styles__h3.styles__gt-america,
.styles__h4.styles__gt-america,
.styles__h5.styles__gt-america,
.styles__h6.styles__gt-america {
  font-weight: 900;
}
.styles__h1 {
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.25;
  letter-spacing: normal;
}
.styles__h1.styles__gt-america {
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.1875;
  letter-spacing: 0.1rem;
}
@media all and (min-width: 48em) {
  .styles__h1 {
    font-size: 44px;
    font-size: 2.75rem;
    line-height: 1.27272727;
    letter-spacing: normal;
  }
  .styles__h1.styles__gt-america {
    font-size: 44px;
    font-size: 2.75rem;
    line-height: 1.13636364;
    letter-spacing: 0.1375rem;
  }
}
.styles__h2 {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.25;
  letter-spacing: -0.125rem;
}
.styles__h2.styles__gt-america {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.21428571;
  letter-spacing: 0.0875rem;
}
@media all and (min-width: 48em) {
  .styles__h2 {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.25;
    letter-spacing: normal;
  }
  .styles__h2.styles__gt-america {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.16666667;
    letter-spacing: 0.1125rem;
  }
}
.styles__h3 {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 1.27272727;
  letter-spacing: normal;
}
.styles__h3.styles__gt-america {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 1.27272727;
  letter-spacing: 0.1375rem;
}
@media all and (min-width: 48em) {
  .styles__h3 {
    font-size: 28px;
    font-size: 1.75rem;
    line-height: 1.25;
    letter-spacing: -0.00375rem;
  }
  .styles__h3.styles__gt-america {
    font-size: 28px;
    font-size: 1.75rem;
    line-height: 1.21428571;
    letter-spacing: 0.0875rem;
  }
}
.styles__h4 {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.33333333;
  letter-spacing: normal;
}
.styles__h4.styles__gt-america {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.33333333;
  letter-spacing: normal;
}
@media all and (min-width: 48em) {
  .styles__h4 {
    font-size: 22px;
    font-size: 1.375rem;
    line-height: 1.27272727;
    letter-spacing: normal;
  }
  .styles__h4.styles__gt-america {
    font-size: 22px;
    font-size: 1.375rem;
    line-height: 1.27272727;
    letter-spacing: 0.1375rem;
  }
}
.styles__h5 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.375;
  letter-spacing: normal;
}
.styles__h5.styles__gt-america {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.375;
  letter-spacing: normal;
}
@media all and (min-width: 48em) {
  .styles__h5 {
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 1.33333333;
    letter-spacing: normal;
  }
  .styles__h5.styles__gt-america {
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 1.33333333;
    letter-spacing: normal;
  }
}
.styles__h6 {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.42857143;
  letter-spacing: normal;
}
.styles__h6.styles__gt-america {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.57142857;
  letter-spacing: normal;
}
@media all and (min-width: 48em) {
  .styles__h6 {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.375;
    letter-spacing: normal;
  }
  .styles__h6.styles__gt-america {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.375;
    letter-spacing: normal;
  }
}
/*

Body Text

Another type style, but this mimicks the default body text of the site.

````body-text
<p>This is a paragraph of text. Some of the text may be <em>emphasised</em> and some it might even be <strong>strongly emphasised</strong>. Occasionally <q>quoted text</q> may be found within a paragraph &hellip;and of course <a href="#">a link</a> may appear at any point in the text. The average paragraph contains five or six sentences although some may contain as little or one or two while others carry on for anything up to ten sentences and beyond.</p>
````

*/
.styles__body-text,
.elements__input-hint,
.elements__input-desc,
[class*="messaging__input-alert"] {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.5625;
  color: #231F20;
  font-family: "Plus Jakarta Sans", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  font-weight: 400;
}
.styles__body-text--large {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.55555556;
}
.styles__body-text--small {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.57142857;
}
.styles__body-text--smallest {
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 1.4;
}
.styles__uppercase {
  text-transform: uppercase;
}
.styles__italic {
  font-style: italic;
}
.styles__normal {
  font-weight: normal;
}
.styles__jakarta--regular {
  font-weight: 400;
}
.styles__medium,
.styles__jakarta--medium {
  font-weight: 500;
}
.styles__bold,
.styles__jakarta--bold {
  font-weight: 700;
}
.styles__extra-bold,
.styles__jakarta--extra-bold {
  font-weight: 800;
}
.styles__gt-america {
  font-family: "GT America", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
}
/*

Blockquote

A basic blockquote.

````blockquote
<figure class="blockquote">
    <blockquote>
        At last we will reveal ourselves to the the Jedi. At last we will have 
        our revenge.
    </blockquote>
    <figcaption class="blockquote__cite">Darth Maul</figcaption>
</figure>
````

*/
/*

Typographic Scale

The building blocks for the site's type sizes. Almost exclusively, an element's
font size is assigned with one of these classes. If a new size is needed, a new
class is created here so it can be used and reused elsewhere.

The list of type sizes can grow or shrink, but be vigilant in keeping the
number of sizes to a minimum. A nice rule of thumb is that no two sizes can one
pixel in difference (forcing you to choose one over the other, giving you one
class where you previously had two).

````typographic-scale
<p class="hierarchy__canon-text">Canon Text (38px)</p>
<p class="hierarchy__paragon-text">Paragon Text (30px)</p>
<p class="hierarchy__primer-text">Primer Text (24px)</p>
<p class="hierarchy__tertia-text">Tertia Text (18px)</p>
<p class="hierarchy__normal-text">Normal Text (14px)</p>
<p class="hierarchy__minus-1">Petite Text (12px)</p>
````

Long Modifiers

The type sizes are given the `--long` modifier, allowing you to use
each type size with varying line heights.

    <p class="hierarchy__minus-1">I'm just a small bit of text, my `line-height`
    can be tight.</p>

    <p class="hierarchy__minus-1--long">I'm a long paragraph, so my `line-height`
    should be longer to enhance legibility. ... </p>

*/
.hierarchy__long-text,
.hierarchy__plus-7--long,
.hierarchy__plus-6--long,
.hierarchy__plus-5--long,
.hierarchy__plus-4--long,
.hierarchy__plus-3--long,
.hierarchy__plus-2--long,
.hierarchy__plus-1--long,
.hierarchy__base--long,
.hierarchy__minus-1--long,
.hierarchy__minus-2--long,
.hierarchy__minus-3--long {
  line-height: 1.5;
}
.hierarchy__plus-7,
.hierarchy__plus-7--long {
  font-size: 36px;
  font-size: 2.25rem;
  line-height: 1.5;
}
.hierarchy__plus-6,
.hierarchy__plus-6--long {
  font-size: 36px;
  font-size: 2.25rem;
  line-height: 1.5;
}
.hierarchy__plus-5,
.hierarchy__plus-5--long {
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.5;
}
.hierarchy__plus-4,
.hierarchy__plus-4--long {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.5;
}
.hierarchy__plus-3,
.hierarchy__plus-3--long {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.5;
}
.hierarchy__plus-2,
.hierarchy__plus-2--long {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 1.54545455;
}
.hierarchy__plus-1,
.hierarchy__plus-1--long {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.55555556;
}
.hierarchy__base,
.hierarchy__base--long {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.5;
}
.hierarchy__minus-1,
.hierarchy__minus-1--long {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.57142857;
}
.hierarchy__minus-2,
.hierarchy__minus-2--long {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.5;
}
.hierarchy__minus-3,
.hierarchy__minus-3--long {
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 1.6;
}
/*

Interactive Elements

*/
/*

button

Default interactive button styles. This `.btn` class can be applied to `<a>`, 
`<button>`, or `<input>` elements. Button color and style classes can be combined 
with size classes, much like the type modules.

````button
<a class="button__primary" href="#">Primary</a>
<a class="button__secondary button--tiny" href="#">Secondary (Tiny Size)</a>
````

*/
button {
  font-size: 100%;
  margin: 0;
  -webkit-appearance: button;
  display: inline-block;
  cursor: pointer;
  line-height: normal;
}
button[disabled] {
  cursor: default;
}
button::-moz-focus-inner {
  border: 0;
  padding: 0;
}
.button__base,
.button__hero,
.button__primary,
.button__secondary,
.button__transparent {
  position: relative;
  box-sizing: border-box;
  width: auto;
  height: auto;
  border: none;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  outline: 0;
  overflow: visible;
  padding: 0.75rem 2.6875rem;
  -webkit-appearance: none;
  -webkit-background-clip: padding;
  -moz-background-clip: padding;
  background-clip: padding-box;
  margin-top: 1.25em;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 800;
}
.button__base:focus,
.button__hero:focus,
.button__primary:focus,
.button__secondary:focus,
.button__transparent:focus {
  outline: #0396FF solid 0.1875rem;
}
p > .button__base,
p > .button__hero,
p > .button__primary,
p > .button__secondary,
p > .button__transparent {
  margin-top: 0;
}
.button__base[disabled],
.button__base.disabled,
.button__hero[disabled],
.button__hero.disabled,
.button__primary[disabled],
.button__primary.disabled,
.button__secondary[disabled],
.button__secondary.disabled,
.button__transparent[disabled],
.button__transparent.disabled {
  background: #C0C0C0;
  color: #707170;
  pointer-events: none;
}
.button__base.links__unlink,
.button__hero.links__unlink,
.button__primary.links__unlink,
.button__secondary.links__unlink,
.button__transparent.links__unlink {
  display: inline-block;
}
.button__base.links__unlink:hover,
.button__base.links__unlink:focus,
.button__hero.links__unlink:hover,
.button__hero.links__unlink:focus,
.button__primary.links__unlink:hover,
.button__primary.links__unlink:focus,
.button__secondary.links__unlink:hover,
.button__secondary.links__unlink:focus,
.button__transparent.links__unlink:hover,
.button__transparent.links__unlink:focus {
  color: #fff;
}
.button__hero {
  overflow: hidden;
  transition: color 0.6s, transform 0.6s, background-color 0.6s;
  padding: 1rem 2rem 1.4375rem;
  background: transparent;
  color: #C60223;
  color: var(--brand-2);
  z-index: 0;
}
.button__hero:before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  border-bottom: 0.4375rem solid #C60223;
  border-bottom: 0.4375rem solid var(--brand-2);
  background: #fff;
  z-index: -1;
}
.button__hero:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 25rem;
  height: 25rem;
  background-color: #C60223;
  background-color: var(--brand-2);
  border-color: transparent;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0.1);
  opacity: 0;
  z-index: -1;
  transition: transform 0.6s, opacity 0.6s, background-color 0.6s;
}
.button__hero:hover {
  color: #fff;
}
.button__hero:hover:after {
  opacity: 1;
  transform-origin: 50% 50%;
  transform: scale(1) translate(-50%, -50%);
}
.button__primary {
  background: #231F20;
  color: #fff;
}
.button__primary:hover,
.button__primary:active {
  background: #C60223;
  background: var(--brand-2);
}
.button__primary:focus {
  background: #231F20;
}
.button__secondary {
  background: #fff;
  color: #231F20;
}
.button__secondary:after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  border: 0.1875rem solid #231F20;
}
.button__secondary:hover,
.button__secondary:active {
  background: #C60223;
  background: var(--brand-2);
  color: #fff;
}
.button__secondary:hover:after,
.button__secondary:active:after {
  content: none;
}
.button__secondary:focus {
  background: #fff;
  color: #231F20;
}
.button__secondary[disabled]:after,
.button__secondary.disabled:after {
  border: none;
}
.button--small {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.57142857;
  padding: 0.625rem 1rem;
}
.button--red {
  background-color: #C60223;
  color: #fff;
}
.button--red:after {
  border-color: #C60223;
}
.button--red:hover,
.button--red:focus {
  background-color: #000;
}
.button--red:hover:after,
.button--red:focus:after {
  border-color: #000;
}
.button__full-width {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}
.button__no-button,
.button__transparent {
  background: transparent;
  color: inherit;
  border: 0;
}
.button__no-button:hover,
.button__no-button:focus,
.button__no-button.is-current,
.button__transparent:hover,
.button__transparent:focus,
.button__transparent.is-current {
  background: transparent;
  color: inherit;
}
.button__utility {
  width: 45px;
  height: 45px;
}
.button__transparent:hover,
.button__transparent:focus {
  background-color: #F1EFF0;
}
/*

Link Styles

Very basic stuff. The primary link color can be altered in the `config.less` 
file. Hover, focus, and current states are accounted for.

*/
.links__dark {
  color: #fff !important;
}
.links__dark:hover,
.links__dark:active {
  color: #E3E0E1 !important;
}
.links__primary {
  text-decoration-color: transparent;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
.links__primary:focus,
.links__primary:hover {
  text-decoration-color: inherit;
}
.links__primary svg {
  font-size: 0.9375rem;
  color: inherit;
}
/*

Unlink

Basic class to remove some link styling.

@TODO: Put in `presentational.less` file?

*/
.links__unlink {
  text-decoration: none;
}
.links__overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.navigation__brandbar a.links__brandbar {
  color: #707170;
  text-decoration-color: transparent;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
  transition: color 250ms ease-in-out;
}
.navigation__brandbar a.links__brandbar:hover,
.navigation__brandbar a.links__brandbar:active {
  color: #E8B877;
}
.navigation__brandbar a.links__brandbar.is-active {
  color: #fff;
  text-decoration-color: #fff;
}
/*

Forms

*/
form {
  margin: 0;
}
fieldset {
  border: none;
  margin: 0;
  padding: 0;
}
legend {
  width: 100%;
  border: 0;
  padding: 0;
  display: block;
  white-space: normal;
}
/*

Basic Form Elements

Inputs and textareas are set to `width: 100%` to adapt to the width of their 
wrapper. (Great for grids.) Select boxes are set to the width of their content,
maxing out at `100%`.

Almost all the form elements in Motif are best used inside a `label`.

    <label>
        Text Field
        <input type="text" name="text" required>
    </label>

*/
input,
select,
textarea {
  font-size: 100%;
  margin: 0;
  display: block;
}
input,
textarea {
  width: 100%;
  font-size: 1em;
  padding: 0.3125rem 0.25rem;
  outline: none;
}
input:hover,
textarea:hover,
input:focus,
textarea:focus,
input:active,
textarea:active,
input.is-current,
textarea.is-current {
  z-index: 1;
}
input {
  line-height: normal;
}
input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  display: inline-block;
  cursor: pointer;
}
input[disabled] {
  cursor: default;
}
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input:is([type="checkbox"], [type="radio"]) {
  margin: 3px;
  padding: 0;
  box-sizing: border-box;
  position: relative;
  vertical-align: top;
  width: auto;
}
input:is([type="checkbox"], [type="radio"]).elements__psuedo {
  inset: 0;
  position: absolute;
  width: 100%;
  height: 100%;
  margin: auto;
  opacity: 0;
}
input[type="email"] {
  border-radius: 0;
}
input[type="search"] {
  -webkit-appearance: none;
  border-radius: 0;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
textarea {
  overflow: auto;
  vertical-align: top;
  height: 5rem;
}
select {
  width: auto;
  max-width: 100%;
  font-size: 0.8125em;
}
/*

Input Label Elements

Child form elements of the `.elements__input-label` class are given a little bit of 
spacing to separate them from the label text. (See also `.elements__input-label` in the
form `type.less` file.)

````input-label-elements
<label class="elements__input-label">
    Text Field
    <input type="text" name="text" placeholder="Placeholder text" required>
</label>
<label class="elements__input-label">
    Textarea
    <textarea placeholder="Placeholder text"></textarea>
</label>
<label class="elements__input-label">
    Select
    <select>
        <option>Placeholder text</option>
    </select>
</label>
````

*/
.elements__input-label input,
.elements__input-label textarea,
.elements__input-label select {
  margin-top: 0.625em;
  margin-bottom: 0.625em;
}
/*

Input Widths

While you are encouraged to use the responsive grid system in conjunction with 
your form styles, sometimes it's useful to have form field widths that are 
simply consistent across viewports. These are those.

    <label class="elements__input-label">
        Text Field
        <input class="elements__input--xs" type="text" name="text" required>
    </label>

*/
.elements__input--eighth {
  width: 12.5%;
}
.elements__input--quarter {
  width: 25%;
}
.elements__input--half {
  width: 50%;
}
.elements__input--xxxs {
  max-width: 30px;
}
.elements__input--xxs {
  max-width: 50px;
}
.elements__input--xs {
  max-width: 100px;
}
.elements__input--s {
  max-width: 175px;
}
.elements__input--m {
  max-width: 250px;
}
.elements__input--l {
  max-width: 350px;
}
/*

Form Modules

````attached-label-before
<label class="elements__attached-label">
    <small class="label">$</small>
    <input type="num" id="attached-label-before" required>
</label>
````

````attached-label-after
<label class="elements__attached-label">
    <input type="text" id="attached-label-after" required>
    <small class="label">.com</small>
</label>
````

````attached-label-before-and-after
<label class="elements__attached-label">
    <small class="label">www.</small>
    <input type="text" id="attached-label" placeholder="domain" required>
    <small class="label">.com</small>
</label>
````

````attached-label-submit
<form class="elements__attached-label">
    <label class="is-hidden" for="attached-label-submit">Search</label>
    <input type="search" id="attached-label-submit" required>
    <div>
        <button type="submit" class="button__primary">
            <svg class="icon"><use xlink:href="#search"></svg>
            <b class="is-hidden">Submit</b>
        </button>
    </div>
</form>
````

*/
.elements__attached-label {
  display: table;
  overflow: hidden;
}
.elements__attached-label > * {
  margin-top: 0;
  display: table-cell;
  vertical-align: middle;
}
.elements__attached-label > * > :first-child {
  margin-top: 0;
}
.elements__attached-label [class*="button"] {
  display: block;
  width: 100%;
}
/*

Input Label

The `.input-label` class should be added to form labels that want a little 
extra styling for the label text.

(You may need to do some fancy things with hidden or altered labels, which is
why these styles aren't added to the `label` element by default.)

    <label class="elements__input-label">
        Text Field
        <input type="text" name="text" required>
    </label>

There are also input descriptions, which go directly underneath the label text,
and input hints that typically go underneath the input field.

    <label class="elements__input-label">
        Text Field
        
        <small class="elements__input-desc">
            This is a small description of the field.
        </small>
        
        <input type="text" name="text" required>
        
        <strong class="elements__input-hint">
            This is an important hint.
        </strong>
    </label>

*/
.elements__input-label {
  padding-top: 1.25em;
}
.elements__input-hint {
  color: #837f81;
  margin-top: 0.3125em;
}
.elements__input-desc {
  margin-top: 0em;
}
/*

Fieldset

A simple class to add to fieldsets that want a little more spacing.

*/
.elements__fieldset {
  margin-top: 1.25em;
  padding-bottom: 1.25em;
}
/*

Checkbox List

Lists of radio or checkbox inputs should typically be just that: lists. In 
Motif, you're encouraged to mark up your input lists as semantically as 
possible, meaning a fieldset, with a legend, and a list of inputs:

    <fieldset>
        <legend>
            <b class="elements__input-label">This is a question for a radio list?</b>
        </legend>

        <ul class="elements__checkbox-list">
            <li>
                <label class="media__media-object">
                    <input class="media__media-object__figure"
                     type="radio"
                     name="radioList"
                     value="Yes">

                    <b class="media__media-object__desc">
                        Yes
                    </b>
                </label>
            </li>
            <li>
                <label class="media__media-object">
                    <input class="media__media-object__figure"
                     type="radio"
                     name="radioList"
                     value="No">

                    <b class="media__media-object__desc">
                        No
                    </b>
                </label>
            </li>
        </ul>
    </fieldset>

*/
.elements__checkbox-list {
  margin-top: 0.625em;
}
legend + .elements__checkbox-list {
  margin-top: 0em;
}
legend .elements__input-label {
  padding-bottom: 0.3125em;
}
legend + .elements__input-desc {
  /* Positioning */
  position: relative;
  top: -0.3125rem;
}
/*

Alert/Error Messages

*/
.elements__input-alert-msg {
  background: #F7E5E4;
  color: #C60223;
  padding: 0.75rem;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.5;
  font-family: "Plus Jakarta Sans", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  border: 1px solid #C60223;
}
.loadingButton__reset {
  font-size: 1em;
  line-height: 1em;
}
.is-loading .loadingButton__reset {
  display: none;
}
.loadingButton__loader {
  display: none;
}
.is-loading .loadingButton__loader {
  display: flex;
  align-items: center;
  justify-content: center;
}
.loadingButton__text {
  opacity: 0;
}
.is-loading .loadingButton__text {
  opacity: 1;
}
@keyframes load {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(359deg);
  }
}
/*

Form Validation

*/
/*

Input States

A couple of classes added to inputs (typically by a JS Validation plugin) that
alter the child elements to convey states of success and error.

    <label class="elements__input-label messaging__is-erroneous">
        Text Field
        <input type="text" name="text" required>
    </label>

*/
.messaging__is-successful input,
.messaging__is-successful textarea,
.messaging__is-successful select {
  border-color: #72bc44;
}
.messaging__is-erroneous input,
.messaging__is-erroneous textarea,
.messaging__is-erroneous select {
  border-color: #D92A23;
}
/*

Form Messaging

Within labels, there are input alerts that apply to individual fields.

    <label class="elements__input-label messaging__is-erroneous">
        Text Field
        <input type="text" name="text" required>
        <strong class="messaing__input-alert--error">
            This field is required.
        </strong>
    </label>

*/
[class*="messaging__input-alert"] {
  /* Display & Box Model */
  display: inline-block;
  /* Pretty */
  color: #C60223;
}
.messaging__input-alert--warning {
  color: #ec7e04;
}
.messaging__input-alert--error {
  color: #D92A23;
}
.messaging__input-alert--success {
  color: #72bc44;
}
/*

Spacing Helpers

Spacing helpers are quick but powerful classes that add margin or padding to
any given element. These classes are `!important`, so they override all other
styles.

* `p`, `m`                          =   padding, margin
* `a`, `t`, `r`, `b`, `l`, `h`, `v` =   all, top, right, bottom, left, horizontal, vertical
* `s`, `m`, `l`, `x`, `n`                =   small (~`5px`), medium (~`10px`), large (~`20px`), x-large (~`40px`) none (`0`)

For example: `.spacing__pam` means "padding, all, medium".

**Note:** These are all based on the current element's font size and the
project's vertical rhythm (even on the sides, to provide uniform spacing).
As such, they require `vars.less`.

*/
.spacing__ptn,
.spacing__pvn,
.spacing__pan {
  padding-top: 0 !important;
}
.spacing__pts,
.spacing__pvs,
.spacing__pas {
  padding-top: 0.3125rem !important;
}
.spacing__ptm,
.spacing__pvm,
.spacing__pam {
  padding-top: 0.625rem !important;
}
.spacing__ptl,
.spacing__pvl,
.spacing__pal {
  padding-top: 1.25rem !important;
}
.spacing__ptx,
.spacing__pvx,
.spacing__pax {
  padding-top: 2.5rem !important;
}
.spacing__prn,
.spacing__phn,
.spacing__pan {
  padding-right: 0 !important;
}
.spacing__prs,
.spacing__phs,
.spacing__pas {
  padding-right: 0.3125rem !important;
}
.spacing__prm,
.spacing__phm,
.spacing__pam {
  padding-right: 0.625rem !important;
}
.spacing__prl,
.spacing__phl,
.spacing__pal {
  padding-right: 1.25rem !important;
}
.spacing__prx,
.spacing__phx,
.spacing__pax {
  padding-right: 2.5rem !important;
}
.spacing__pbn,
.spacing__pvn,
.spacing__pan {
  padding-bottom: 0 !important;
}
.spacing__pbs,
.spacing__pvs,
.spacing__pas {
  padding-bottom: 0.3125rem !important;
}
.spacing__pbm,
.spacing__pvm,
.spacing__pam {
  padding-bottom: 0.625rem !important;
}
.spacing__pbl,
.spacing__pvl,
.spacing__pal {
  padding-bottom: 1.25rem !important;
}
.spacing__pbx,
.spacing__pvx,
.spacing__pax {
  padding-bottom: 2.5rem !important;
}
.spacing__pln,
.spacing__phn,
.spacing__pan {
  padding-left: 0 !important;
}
.spacing__pls,
.spacing__phs,
.spacing__pas {
  padding-left: 0.3125rem !important;
}
.spacing__plm,
.spacing__phm,
.spacing__pam {
  padding-left: 0.625rem !important;
}
.spacing__pll,
.spacing__phl,
.spacing__pal {
  padding-left: 1.25rem !important;
}
.spacing__plx,
.spacing__phx,
.spacing__pax {
  padding-left: 2.5rem !important;
}
.spacing__mtn,
.spacing__mvn,
.spacing__man {
  margin-top: 0 !important;
}
.spacing__mts,
.spacing__mvs,
.spacing__mas {
  margin-top: 0.3125rem !important;
}
.spacing__mtm,
.spacing__mvm,
.spacing__mam {
  margin-top: 0.625rem !important;
}
.spacing__mtl,
.spacing__mvl,
.spacing__mal {
  margin-top: 1.25rem !important;
}
.spacing__mtx,
.spacing__mvx,
.spacing__max {
  margin-top: 2.5rem !important;
}
.spacing__mrn,
.spacing__mhn,
.spacing__man {
  margin-right: 0 !important;
}
.spacing__mrs,
.spacing__mhs,
.spacing__mas {
  margin-right: 0.3125rem !important;
}
.spacing__mrm,
.spacing__mhm,
.spacing__mam {
  margin-right: 0.625rem !important;
}
.spacing__mrl,
.spacing__mhl,
.spacing__mal {
  margin-right: 1.25rem !important;
}
.spacing__mrx,
.spacing__mhx,
.spacing__max {
  margin-right: 2.5rem !important;
}
.spacing__mbn,
.spacing__mvn,
.spacing__man {
  margin-bottom: 0 !important;
}
.spacing__mbs,
.spacing__mvs,
.spacing__mas {
  margin-bottom: 0.3125rem !important;
}
.spacing__mbm,
.spacing__mvm,
.spacing__mam {
  margin-bottom: 0.625rem !important;
}
.spacing__mbl,
.spacing__mvl,
.spacing__mal {
  margin-bottom: 1.25rem !important;
}
.spacing__mbx,
.spacing__mvx,
.spacing__max {
  margin-bottom: 2.5rem !important;
}
.spacing__mln,
.spacing__mhn,
.spacing__man {
  margin-left: 0 !important;
}
.spacing__mls,
.spacing__mhs,
.spacing__mas {
  margin-left: 0.3125rem !important;
}
.spacing__mlm,
.spacing__mhm,
.spacing__mam {
  margin-left: 0.625rem !important;
}
.spacing__mll,
.spacing__mhl,
.spacing__mal {
  margin-left: 1.25rem !important;
}
.spacing__mlx,
.spacing__mhx,
.spacing__max {
  margin-left: 2.5rem !important;
}
.spacing__block {
  padding: 40px 0;
}
@media all and (min-width: 48em) {
  .spacing__block {
    padding: 80px 0;
  }
}
.spacing__block--sm {
  padding: 40px 0;
}
.spacing__block--top {
  padding-top: 40px;
}
@media all and (min-width: 48em) {
  .spacing__block--top {
    padding-top: 80px;
  }
}
.spacing__block--bottom {
  padding-bottom: 40px;
}
@media all and (min-width: 48em) {
  .spacing__block--bottom {
    padding-bottom: 80px;
  }
}
.spacing__block--sm-top {
  padding-top: 40px;
}
.spacing__block--sm-bottom {
  padding-bottom: 40px;
}
/*

Text Align

Simple classes to adjust your text alignment. They can be added to individual elements or on wrapping elements (an outer `div`, perhaps) to adjust the alignment of all the child elements.

*/
.presentational__align-left {
  text-align: left;
}
.presentational__align-center {
  text-align: center;
}
.presentational__align-right {
  text-align: right;
}
.presentational__align-sub {
  vertical-align: sub;
}
.presentational__align-middle {
  vertical-align: middle;
}
.presentational__align-top {
  vertical-align: top;
}
/*

Floats

Next, we have classes for floating elements.

*/
.presentational__float-left {
  float: left;
}
.presentational__float-center {
  margin-left: auto;
  margin-right: auto;
}
.presentational__float-right {
  float: right;
}
.presentational__float-none {
  float: none;
}
.presentational__clear {
  clear: both;
}
/*

"New Line"

Turns an `inline` or `inline-block` element into a `block` one.

*/
.presentational__new-line,
.ratios__base:before,
.media__figure > a,
[class*="media__figure--"] > a,
.media__figure img,
[class*="media__figure--"] img,
.elements__input-label,
.elements__input-hint,
.elements__input-desc,
.ratios__video:before,
.ratios__default:before,
.ratios__1x1:before,
.ratios__square:before,
.ratios__2x1:before,
.ratios__1x2:before,
.ratios__4x3:before,
.ratios__3x4:before {
  display: block;
}
.presentational__group {
  /* Mixins */
}
.presentational__group:before,
.presentational__group:after {
  content: "\0020";
  height: 0;
  display: block;
  overflow: hidden;
}
.presentational__group:after {
  clear: both;
}
/*

"Display None"

Sets the `display` of an element to `none`.

*/
.presentational__display-none {
  display: none;
}
/*

"Display Inline-Block"

Sets the `display` of an element to `inline-block`.

*/
.presentational__display-inline-block {
  display: inline-block;
}
/*

"Is Hidden"

Visually hides content in a way that leaves it accessible to screen readers.
Like more magic, makes the visible invisible.

*/
.presentational__is-hidden,
.js .reveal__target {
  width: 1px;
  height: 1px;
  padding: 0;
  position: absolute;
  clip: rect(1px 1px 1px 1px);
  /* IE6, IE7 */
  clip: rect(1px, 1px, 1px, 1px);
  border: 0;
  overflow: hidden;
}
.presentational__is-hidden.focusable:active,
.presentational__is-hidden.focusable:focus {
  width: auto;
  height: auto;
  margin: 0;
  clip: auto;
  overflow: visible;
  position: static;
}
body:hover .presentational__is-hidden a,
body:hover .presentational__is-hidden input,
body:hover .presentational__is-hidden button {
  display: none;
}
@media all and (max-width: 47.9375em) {
  .presentational__is-hidden-small {
    width: 1px;
    height: 1px;
    padding: 0;
    position: absolute;
    clip: rect(1px 1px 1px 1px);
    /* IE6, IE7 */
    clip: rect(1px, 1px, 1px, 1px);
    border: 0;
    overflow: hidden;
  }
  .presentational__is-hidden-small.focusable:active,
  .presentational__is-hidden-small.focusable:focus {
    width: auto;
    height: auto;
    margin: 0;
    clip: auto;
    overflow: visible;
    position: static;
  }
  body:hover .presentational__is-hidden-small a,
  body:hover .presentational__is-hidden-small input,
  body:hover .presentational__is-hidden-small button {
    display: none;
  }
}
@media all and (min-width: 48em) and (max-width: 59.9375em) {
  .presentational__is-hidden-medium {
    width: 1px;
    height: 1px;
    padding: 0;
    position: absolute;
    clip: rect(1px 1px 1px 1px);
    /* IE6, IE7 */
    clip: rect(1px, 1px, 1px, 1px);
    border: 0;
    overflow: hidden;
  }
  .presentational__is-hidden-medium.focusable:active,
  .presentational__is-hidden-medium.focusable:focus {
    width: auto;
    height: auto;
    margin: 0;
    clip: auto;
    overflow: visible;
    position: static;
  }
  body:hover .presentational__is-hidden-medium a,
  body:hover .presentational__is-hidden-medium input,
  body:hover .presentational__is-hidden-medium button {
    display: none;
  }
}
@media all and (min-width: 60em) {
  .presentational__is-hidden-large {
    width: 1px;
    height: 1px;
    padding: 0;
    position: absolute;
    clip: rect(1px 1px 1px 1px);
    /* IE6, IE7 */
    clip: rect(1px, 1px, 1px, 1px);
    border: 0;
    overflow: hidden;
  }
  .presentational__is-hidden-large.focusable:active,
  .presentational__is-hidden-large.focusable:focus {
    width: auto;
    height: auto;
    margin: 0;
    clip: auto;
    overflow: visible;
    position: static;
  }
  body:hover .presentational__is-hidden-large a,
  body:hover .presentational__is-hidden-large input,
  body:hover .presentational__is-hidden-large button {
    display: none;
  }
}
/*

"Isn't Hidden"

Undoes `.is-hidden`.

*/
.presentational__isnt-hidden,
.js .reveal__target.is-revealed {
  /* Mixins */
  width: auto;
  height: auto;
  margin: 0;
  position: relative;
  clip: auto;
}
body:hover .presentational__isnt-hidden a,
body:hover .presentational__isnt-hidden input,
body:hover .presentational__isnt-hidden button {
  display: inline-block;
}
.lte7 body:hover .presentational__isnt-hidden a,
.lte7 body:hover .presentational__isnt-hidden input,
.lte7 body:hover .presentational__isnt-hidden button {
  display: inline;
  zoom: 1;
}
/*

"Relative Container"

Exactly what it sounds like.

*/
.presentational__relative-container,
.ratios__base,
[class*="messaging__input-alert"],
.js .expand__target,
.ratios__video,
.ratios__default,
.ratios__1x1,
.ratios__square,
.ratios__2x1,
.ratios__1x2,
.ratios__4x3,
.ratios__3x4 {
  position: relative;
}
/*

"No Scroll"

Paired with "motif.utitlies.js" to make the page non-scrollable

*/
html.presentational__no-scroll,
body.presentational__no-scroll {
  height: 100%;
  width: 100%;
  overflow: hidden;
  position: fixed;
}
.presentational__height-full {
  height: 100%;
}
/*
FLEX UTILITIES
@author Enid Soto <enid@lifeblue.com>
@author Travis Self <travis@lifeblue.com>

Create a parent flex element by applying the class `.flex`, and add flex items with the class `.flex__col`. You can also use the grid system's column classes, i.e. `grid__lg-half`.
    <div class="flex">
        <div class="flex__col">...</div>
        <div class="flex__col">...</div>
    </div>

    Add gutters to the columns by adding the class `.flex__gutters` to the parent flex container:
    <div class="flex flex__gutters">
        <div class="flex__col">...</div>
        <div class="flex__col">...</div>
    </div>

    .m-flex__element()
    --------------------
    This mixin will set the display to flex, and also set the flex-direction and flex-wrap to their default values (row and nowrap, respectively). If you are using the standard motif column classes (i.e. grid__sm-half), you must set the gutters to true.
    You can set new values with the variables `@direction` and `@wrap`, like so: 
    .m-flex__element(@direction: column, @wrap: wrap);

.m-flex__order(@number)
-------------------------
Use this mixin to set the order of each flex item within a parent flex element. Accepts a unitless value only. 

.m-flex(@grow, @shrink, @basis)
--------------------------------
This mixin sets the shorthand `flex` property, which combines flex-grow, flex-shrink and flex-basis.
    @grow: specifies how much a flex item will grow relative to the rest of the flexible items inside the same container. Accepts a unitless value only. Negative values are invalid. 
    @shrink: specifies how much a flex item will shrink relative to the rest of the flexible items inside the same container. Accepts a unitless value only. Negative values are invalid.
    @basis: specifies the initial length of a flexible item. Accepts a length (20%, 5rem, etc) or a keyword.
Note: IE 9 and earlier do not support the flex property.

*/
.flex {
  flex-direction: row;
  flex-wrap: nowrap;
  display: flex;
}
.flex--inline {
  flex-direction: row;
  flex-wrap: nowrap;
  display: inline-flex;
}
.flex__full,
.flex__col {
  width: 100%;
}
.flex__gutters {
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}
.flex__gutters:before,
.flex__gutters:after {
  content: "\0020";
  height: 0;
  display: block;
  overflow: hidden;
}
.flex__gutters:after {
  clear: both;
}
@media all and (min-width: 48em) and (max-width: 59.9375em) {
  .flex__gutters {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
  }
  .flex__gutters:before,
  .flex__gutters:after {
    content: "\0020";
    height: 0;
    display: block;
    overflow: hidden;
  }
  .flex__gutters:after {
    clear: both;
  }
}
@media all and (min-width: 60em) {
  .flex__gutters {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
  }
  .flex__gutters:before,
  .flex__gutters:after {
    content: "\0020";
    height: 0;
    display: block;
    overflow: hidden;
  }
  .flex__gutters:after {
    clear: both;
  }
}
.flex__gutters .flex__col {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
@media all and (min-width: 48em) and (max-width: 59.9375em) {
  .flex__gutters .flex__col {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}
@media all and (min-width: 60em) {
  .flex__gutters .flex__col {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}
/* The `flex-direction` helper classes are:
    .flex__dir--row
    .flex__dir--row-reverse
    .flex__dir--column
    .flex__dir--column-reverse
*/
.flex__dir--row {
  flex-direction: row;
}
.flex__dir--row-reverse {
  flex-direction: row-reverse;
}
.flex__dir--column {
  flex-direction: column;
}
.flex__dir--column-reverse {
  flex-direction: column-reverse;
}
/* The `flex-wrap` helper classes are:
    .flex__wrp--nowrap
    .flex__wrp--wrap
    .flex__wrp--wrap-reverse
*/
.flex__wrp--nowrap {
  flex-wrap: nowrap;
}
.flex__wrp--wrap {
  flex-wrap: wrap;
}
.flex__wrp--wrap-reverse {
  flex-wrap: wrap-reverse;
}
/* The `justify-content` helper classes are:
    .flex__jc--flex-start
    .flex__jc--flex-end
    .flex__jc--center
    .flex__jc--space-between
    .flex__jc--space-around
    .flex__jc--space-evenly
*/
.flex__jc--flex-start {
  justify-content: flex-start;
}
.flex__jc--flex-end {
  justify-content: flex-end;
}
.flex__jc--center {
  justify-content: center;
}
.flex__jc--space-between {
  justify-content: space-between;
}
.flex__jc--space-around {
  justify-content: space-around;
}
.flex__jc--space-evenly {
  justify-content: space-evenly;
}
/* The `align-items` helper classes are:
    .flex__ai--flex-start
    .flex__ai--flex-end
    .flex__ai--center
    .flex__ai--stretch
    .flex__ai--baseline
*/
.flex__ai--flex-start {
  align-items: flex-start;
}
.flex__ai--flex-end {
  align-items: flex-end;
}
.flex__ai--center {
  align-items: center;
}
.flex__ai--stretch {
  align-items: stretch;
}
.flex__ai--baseline {
  align-items: baseline;
}
/* The `align-content` helper classes are:
    .flex__ac--normal
    .flex__ac--flex-start
    .flex__ac--flex-end
    .flex__ac--center
    .flex__ac--space-between
    .flex__ac--space-around
    .flex__ac--space-evenly
    .flex__ac--stretch
    NOTE: These properties ONLY take effect on multi-line flexible containers, where flex-flow is set to either wrap or wrap-reverse
*/
.flex__ac--normal {
  align-content: normal;
}
.flex__ac--flex-start {
  align-content: flex-start;
}
.flex__ac--flex-end {
  align-content: flex-end;
}
.flex__ac--center {
  align-content: center;
}
.flex__ac--space-between {
  align-content: space-between;
}
.flex__ac--space-around {
  align-content: space-around;
}
.flex__ac--space-evenly {
  align-content: space-evenly;
}
.flex__ac--stretch {
  align-content: stretch;
}
/* The `align-self` helper classes are:
    .flex__as--auto
    .flex__as--flex-start
    .flex__as--flex-end
    .flex__as--center
    .flex__as--baseline
    .flex__as--stretch
*/
.flex__as--auto {
  align-self: auto;
}
.flex__as--flex-start {
  align-self: flex-start;
}
.flex__as--flex-end {
  align-self: flex-end;
}
.flex__as--center {
  align-self: center;
}
.flex__as--baseline {
  align-self: baseline;
}
.flex__as--stretch {
  align-self: stretch;
}
.flex__js--auto {
  justify-self: auto;
}
.flex__js--flex-start {
  justify-self: flex-start;
}
.flex__js--flex-end {
  justify-self: flex-end;
}
.flex__js--center {
  justify-self: center;
}
.flex__js--baseline {
  justify-self: baseline;
}
.flex__js--stretch {
  justify-self: stretch;
}
@media all and (max-width: 47.9375em) {
  .flex__stack--sm {
    flex-direction: column;
  }
  .flex__stack--sm-reverse {
    flex-direction: column-reverse;
  }
}
@media all and (max-width: 59.9375em) {
  .flex__stack--med {
    flex-direction: column;
  }
  .flex__stack--med-reverse {
    flex-direction: column-reverse;
  }
}
@media all and (max-width: 77.4375em) {
  .flex__stack--lg {
    flex-direction: column;
  }
  .flex__stack--lg-reverse {
    flex-direction: column-reverse;
  }
}
.flex__gap--s {
  gap: 0.625rem;
}
.flex__gap--m {
  gap: 1.25rem;
}
.flex__gap--l {
  gap: 2.5rem;
}
.flex__row--s {
  row-gap: 0.625rem;
}
.flex__row--m {
  row-gap: 1.25rem;
}
.flex__row--l {
  row-gap: 2.5rem;
}
.flex__push--left {
  margin-right: auto;
}
.flex__push--right {
  margin-left: auto;
}
.flex__push--top {
  margin-bottom: auto;
}
.flex__push--bottom {
  margin-top: auto;
}
.flex__all {
  flex: 1 1 auto;
}
.flex__grow {
  flex: 1 0 auto;
}
.flex__shrink {
  flex: 0 1 auto;
}
.flex__none {
  flex: 0 0 auto;
}
@media all and (min-width: 48em) {
  .flex__gap--column {
    gap: calc(((100% + 1.5rem) / 10) * 1);
  }
}
@media all and (min-width: 60em) {
  .flex__gap--column {
    gap: calc(((100% + 1.5rem) / 10) * 1);
  }
}
.flex__gap--gutter {
  gap: 1.5rem;
}
.flex__gap--normal {
  gap: normal;
}
@media all and (min-width: 30em) {
  .flex__col-width-sm--100 {
    width: 100%;
  }
  .flex__col-width-sm--50 {
    width: 50%;
  }
  .flex__col-width-sm--25 {
    width: 25%;
  }
}
@media all and (min-width: 48em) {
  .flex__col-width-md--100 {
    width: 100%;
  }
  .flex__col-width-md--50 {
    width: 50%;
  }
  .flex__col-width-md--25 {
    width: 25%;
  }
  .flex__col-width-md--33 {
    width: 33%;
  }
}
@media all and (min-width: 60em) {
  .flex__col-width-lg--100 {
    width: 100%;
  }
  .flex__col-width-lg--50 {
    width: 50%;
  }
  .flex__col-width-lg--25 {
    width: 25%;
  }
  .flex__col-width-lg--33 {
    width: 33%;
  }
}
/*

Responsive Grid

The default responsive grid in Motif is built with a few rules in mind:

1. Each row of columns must be wrapped in a row element
2. There's no need to specify if a column is first or last

With that in mind, there is a basic syntax to learn for what classes to use.
Our breakpoints are classified as:

- Base
- Small
- Medium
- Large
- Extra Large

Our default responsive grid system only uses 3 grids to cover all of our bases:

- `grid, small` covers Base and Small viewports, but cuts off at Medium
- `grid, medium` covers only Medium
- `grid, large` starts at Large and covers Extra Large as well (there is no max
cutoff value for `grid, large`)

Understanding that, the syntax should be easy to understand. In these examples,
we will talk about `grid, small`:

- **Rows**: `.grid__sm-row` (Grid, Small, Row)
- **Columns**: `.grid__sm` (Grid, Column, Small)
- **Column Width**: `.grid__sm-half` (Grid, Small, Half-Width)

    <div class="grid__sm-row">
        <div class="grid__sm-half">...</div>
        <div class="grid__sm-half">...</div>
    </div>

However, to be slightly more succinct, you can use the condensed column syntax:

- **Columns (Condensed)**: `.grid__sm-half` (Grid, Column, Small, Half-Width)

    <div class="grid__sm-row">
        <div class="grid__sm-half">...</div>
        <div class="grid__sm-half">...</div>
    </div>

In brief, the way the grid works is that `.grid__sm` floats the element to the left
(by default), and adds padding to both the left and the right. `-half` gives
it a width of `50%`. The combined padding of the two columns bumped up against 
each other form the full "gutter". The `.grid__sm-row` then clears the floats and has
a *negative* margin on both the left and the right that pops the columns out to
the sides the exact width of their paddings, meaning the column content lines 
up with the site boundaries on the left and right without the need to specify 
"first" or "last" column classes.

To use this responsively, then, you just add the classes by breakpoint:

    <div class="grid__sm-row grid__med-row grid__lg-row">
        <div class="grid__sm-half grid__med-third grid__lg-quarter">
            ...
        </div>
        <div class="grid__sm-half grid__med-two-thirds grid__lg-three-quarters">
            ...
        </div>
    </div>

By default, the column breakdown of each grid breakpoint:

- `grid, small`: 4 columns
- `grid, medium`: 9 columns
- `grid, large`: 12 columns

For the larger grids, the classes follow the numbers closely...

    - `.grid__lg-10of12
    - `.grid__med-4of9`

...in just about every combination (based on their total column number), but 
all of the grids also have a few "fuzzy" shortcuts as well:

    - `half`
    - `third`
    - `quarter`
    - `three-quarters`
    - `two-thirds`

*/
.grid__halves,
.grid__thirds,
.grid__quarters {
  margin-left: -0.5rem;
  margin-right: -0.5rem;
  /* Pretty */
  letter-spacing: -0.31em;
  text-rendering: optimizespeed;
}
.grid__halves:before,
.grid__thirds:before,
.grid__quarters:before,
.grid__halves:after,
.grid__thirds:after,
.grid__quarters:after {
  content: "\0020";
  height: 0;
  display: block;
  overflow: hidden;
}
.grid__halves:after,
.grid__thirds:after,
.grid__quarters:after {
  clear: both;
}
ul.grid__halves,
ul.grid__thirds,
ul.grid__quarters {
  padding-left: 0;
  list-style: none outside none;
}
.grid__halves > *,
.grid__thirds > *,
.grid__quarters > * {
  display: inline;
  float: left;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  /* Display & Box Model */
  display: inline-block;
  /* Positioning */
  float: none;
  /* Pretty */
  letter-spacing: normal;
  word-spacing: normal;
  vertical-align: top;
  text-rendering: auto;
}
.grid__halves > * {
  width: 50%;
}
.grid__thirds > * {
  width: 33.33333%;
}
.grid__quarters > * {
  width: 25%;
}
.opera-only :-o-prefocus,
.grid__thirds {
  word-spacing: -0.43em;
}
/**
 * Mobile Grid
 */
@media all and (max-width: 47.9375em) {
  [class*="grid__sm-row"],
  .grid__sm-quarters,
  .grid__sm-thirds,
  .grid__sm-halves {
    margin-left: -0.5rem;
    margin-right: -0.5rem;
  }
  [class*="grid__sm-row"]:before,
  [class*="grid__sm-row"]:after,
  .grid__sm-quarters:before,
  .grid__sm-quarters:after,
  .grid__sm-thirds:before,
  .grid__sm-thirds:after,
  .grid__sm-halves:before,
  .grid__sm-halves:after {
    content: "\0020";
    height: 0;
    display: block;
    overflow: hidden;
  }
  [class*="grid__sm-row"]:after,
  .grid__sm-quarters:after,
  .grid__sm-thirds:after,
  .grid__sm-halves:after {
    clear: both;
  }
  ul[class*="grid__sm-row"],
  ul.grid__sm-quarters,
  ul.grid__sm-thirds,
  ul.grid__sm-halves {
    padding-left: 0;
    list-style: none outside none;
  }
  .grid__sm-row--rtl > [class*="grid__sm"] {
    float: right;
  }
  .grid__sm-row--ltr > [class*="grid__sm"] {
    float: left;
  }
  [class*="grid__sm"]:not([class*="grid__sm-row"]) {
    display: inline;
    float: left;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
  .grid__sm-quarter,
  .grid__sm-quarters > * {
    width: 25%;
  }
  .grid__sm-third,
  .grid__sm-thirds > * {
    width: 33.33333%;
  }
  .grid__sm-half,
  .grid__sm-halves > * {
    width: 50%;
  }
  .grid__sm-two-thirds {
    width: 66.66667%;
  }
  .grid__sm-three-quarters {
    width: 75%;
  }
  .grid__sm-full {
    width: 100%;
  }
  .grid__sm-row--flex,
  .grid__sm-quarters,
  .grid__sm-thirds,
  .grid__sm-halves {
    letter-spacing: -0.31em;
    text-rendering: optimizespeed;
  }
  .grid__sm-row--flex > [class*="grid__sm"],
  .grid__sm-quarters > *,
  .grid__sm-thirds > *,
  .grid__sm-halves > * {
    float: none;
    display: inline-block;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
  }
  .opera-only :-o-prefocus,
  .grid__sm-row--flex,
  .grid__sm-quarters,
  .grid__sm-thirds,
  .grid__sm-halves {
    word-spacing: -0.43em;
  }
}
/**
 * Tablet Grid
 */
@media all and (min-width: 48em) and (max-width: 59.9375em) {
  [class*="grid__med-row"],
  .grid__med-quarters,
  .grid__med-thirds,
  .grid__med-halves {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
  }
  [class*="grid__med-row"]:before,
  [class*="grid__med-row"]:after,
  .grid__med-quarters:before,
  .grid__med-quarters:after,
  .grid__med-thirds:before,
  .grid__med-thirds:after,
  .grid__med-halves:before,
  .grid__med-halves:after {
    content: "\0020";
    height: 0;
    display: block;
    overflow: hidden;
  }
  [class*="grid__med-row"]:after,
  .grid__med-quarters:after,
  .grid__med-thirds:after,
  .grid__med-halves:after {
    clear: both;
  }
  ul[class*="grid__med-row"],
  ul.grid__med-quarters,
  ul.grid__med-thirds,
  ul.grid__med-halves {
    padding-left: 0;
    list-style: none outside none;
  }
  .grid__med-row--rtl > [class*="grid__med"] {
    float: right;
  }
  .grid__med-row--ltr > [class*="grid__med"] {
    float: left;
  }
  [class*="grid__med"]:not([class*="grid__med-row"]) {
    display: inline;
    float: left;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .grid__med-quarter,
  [class*="grid__med-2of8"],
  .grid__med-quarters > * {
    width: 25%;
  }
  .grid__med-third,
  [class*="grid__med-3of9"],
  [class*="grid__med-2of6"],
  .grid__med-thirds > * {
    width: 33.33333%;
  }
  .grid__med-half,
  [class*="grid__med-5of10"],
  [class*="grid__med-4of8"],
  [class*="grid__med-3of6"],
  .grid__med-halves > * {
    width: 50%;
  }
  .grid__med-two-thirds,
  [class*="grid__med-6of9"],
  [class*="grid__med-4of6"] {
    width: 66.66667%;
  }
  .grid__med-three-quarters,
  [class*="grid__med-6of8"] {
    width: 75%;
  }
  .grid__med-full {
    width: 100%;
  }
  [class*="grid__med-9of10"] {
    width: 90%;
  }
  [class*="grid__med-8of10"] {
    width: 80%;
  }
  [class*="grid__med-7of10"] {
    width: 70%;
  }
  [class*="grid__med-6of10"] {
    width: 60%;
  }
  [class*="grid__med-4of10"] {
    width: 40%;
  }
  [class*="grid__med-3of10"] {
    width: 30%;
  }
  [class*="grid__med-2of10"] {
    width: 20%;
  }
  [class*="grid__med-1of10"] {
    width: 10%;
  }
  [class*="grid__med-8of9"] {
    width: 88.88889%;
  }
  [class*="grid__med-7of9"] {
    width: 77.77778%;
  }
  [class*="grid__med-5of9"] {
    width: 55.55556%;
  }
  [class*="grid__med-4of9"] {
    width: 44.44444%;
  }
  [class*="grid__med-2of9"] {
    width: 22.22222%;
  }
  [class*="grid__med-1of9"] {
    width: 11.11111%;
  }
  [class*="grid__med-7of8"] {
    width: 87.5%;
  }
  [class*="grid__med-5of8"] {
    width: 62.5%;
  }
  [class*="grid__med-3of8"] {
    width: 37.5%;
  }
  [class*="grid__med-1of8"] {
    width: 12.5%;
  }
  [class*="grid__med-6of7"] {
    width: 85.71429%;
  }
  [class*="grid__med-5of7"] {
    width: 71.42857%;
  }
  [class*="grid__med-4of7"] {
    width: 57.14286%;
  }
  [class*="grid__med-3of7"] {
    width: 42.85714%;
  }
  [class*="grid__med-2of7"] {
    width: 28.57143%;
  }
  [class*="grid__med-1of7"] {
    width: 14.28571%;
  }
  [class*="grid__med-5of6"] {
    width: 83.33333%;
  }
  [class*="grid__med-1of6"] {
    width: 16.66667%;
  }
  [class*="grid__med-4of5"] {
    width: 80%;
  }
  [class*="grid__med-3of5"] {
    width: 60%;
  }
  [class*="grid__med-2of5"] {
    width: 40%;
  }
  [class*="grid__med-1of5"] {
    width: 20%;
  }
  .grid__med-row--flex,
  .grid__med-quarters,
  .grid__med-thirds,
  .grid__med-halves {
    letter-spacing: -0.31em;
    text-rendering: optimizespeed;
  }
  .grid__med-row--flex > [class*="grid__med"],
  .grid__med-quarters > *,
  .grid__med-thirds > *,
  .grid__med-halves > * {
    float: none;
    display: inline-block;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
  }
  .opera-only :-o-prefocus,
  .grid__med-row--flex,
  .grid__med-quarters,
  .grid__med-thirds,
  .grid__med-halves {
    word-spacing: -0.43em;
  }
}
/**
 * Desktop Grid
 */
/*

````desktop-grid
<div class="grid__lg-quarters">
    <div>
        <div class="block">Quarter</div>
    </div>
    <div>
        <div class="block">Quarter</div>
    </div>
    <div>
        <div class="block">Quarter</div>
    </div>
    <div>
        <div class="block">Quarter</div>
    </div>
</div>
<div class="grid__lg-thirds">
    <div>
        <div class="block">Third</div>
    </div>
    <div>
        <div class="block">Third</div>
    </div>
    <div>
        <div class="block">Third</div>
    </div>
</div>
<div class="grid__lg-halves">
    <div>
        <div class="block">Half</div>
    </div>
    <div>
        <div class="block">Half</div>
    </div>
</div>
<div class="grid__lg-row">
    <div class="grid__lg-two-thirds">
        <div class="block">Two Thirds</div>
    </div>
    <div class="grid__lg-third">
        <div class="block">Third</div>
    </div>
</div>
<div class="grid__lg-row">
    <div class="grid__lg-three-quarters">
        <div class="block">Three Quarters</div>
    </div>
    <div class="grid__lg-quarter">
        <div class="block">Quarter</div>
    </div>
</div>
````

*/
@media all and (min-width: 60em) {
  [class*="grid__lg-row"],
  .grid__lg-quarters,
  .grid__lg-thirds,
  .grid__lg-halves {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
  }
  [class*="grid__lg-row"]:before,
  [class*="grid__lg-row"]:after,
  .grid__lg-quarters:before,
  .grid__lg-quarters:after,
  .grid__lg-thirds:before,
  .grid__lg-thirds:after,
  .grid__lg-halves:before,
  .grid__lg-halves:after {
    content: "\0020";
    height: 0;
    display: block;
    overflow: hidden;
  }
  [class*="grid__lg-row"]:after,
  .grid__lg-quarters:after,
  .grid__lg-thirds:after,
  .grid__lg-halves:after {
    clear: both;
  }
  ul[class*="grid__lg-row"],
  ul.grid__lg-quarters,
  ul.grid__lg-thirds,
  ul.grid__lg-halves {
    padding-left: 0;
    list-style: none outside none;
  }
  .grid__lg-row--rtl > [class*="grid__lg"] {
    float: right;
  }
  .grid__lg-row--ltr > [class*="grid__lg"] {
    float: left;
  }
  [class*="grid__lg"]:not([class*="grid__lg-row"]) {
    display: inline;
    float: left;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .grid__lg-quarter,
  .grid__lg-quarter,
  [class*="grid__lg-2of8"],
  [class*="grid__lg-2of8"],
  .grid__lg-quarters > *,
  .grid__lg-quarters > * {
    width: 25%;
  }
  .grid__lg-third,
  .grid__lg-third,
  [class*="grid__lg-3of9"],
  [class*="grid__lg-3of9"],
  [class*="grid__lg-2of6"],
  [class*="grid__lg-2of6"],
  .grid__lg-thirds > *,
  .grid__lg-thirds > * {
    width: 33.33333%;
  }
  .grid__lg-half,
  .grid__lg-half,
  [class*="grid__lg-5of10"],
  [class*="grid__lg-5of10"],
  [class*="grid__lg-4of8"],
  [class*="grid__lg-4of8"],
  [class*="grid__lg-3of6"],
  [class*="grid__lg-3of6"],
  .grid__lg-halves > *,
  .grid__lg-halves > * {
    width: 50%;
  }
  .grid__lg-two-thirds,
  .grid__lg-two-thirds,
  [class*="grid__lg-6of9"],
  [class*="grid__lg-6of9"],
  [class*="grid__lg-4of6"],
  [class*="grid__lg-4of6"] {
    width: 66.66667%;
  }
  .grid__lg-three-quarters,
  .grid__lg-three-quarters,
  [class*="grid__lg-6of8"],
  [class*="grid__lg-6of8"] {
    width: 75%;
  }
  .grid__lg-full,
  .grid__lg-full {
    width: 100%;
  }
  [class*="grid__lg-9of10"] {
    width: 90%;
  }
  [class*="grid__lg-8of10"] {
    width: 80%;
  }
  [class*="grid__lg-7of10"] {
    width: 70%;
  }
  [class*="grid__lg-6of10"] {
    width: 60%;
  }
  [class*="grid__lg-4of10"] {
    width: 40%;
  }
  [class*="grid__lg-3of10"] {
    width: 30%;
  }
  [class*="grid__lg-2of10"] {
    width: 20%;
  }
  [class*="grid__lg-1of10"] {
    width: 10%;
  }
  [class*="grid__lg-8of9"] {
    width: 88.88889%;
  }
  [class*="grid__lg-7of9"] {
    width: 77.77778%;
  }
  [class*="grid__lg-5of9"] {
    width: 55.55556%;
  }
  [class*="grid__lg-4of9"] {
    width: 44.44444%;
  }
  [class*="grid__lg-2of9"] {
    width: 22.22222%;
  }
  [class*="grid__lg-1of9"] {
    width: 11.11111%;
  }
  [class*="grid__lg-7of8"] {
    width: 87.5%;
  }
  [class*="grid__lg-5of8"] {
    width: 62.5%;
  }
  [class*="grid__lg-3of8"] {
    width: 37.5%;
  }
  [class*="grid__lg-1of8"] {
    width: 12.5%;
  }
  [class*="grid__lg-6of7"] {
    width: 85.71429%;
  }
  [class*="grid__lg-5of7"] {
    width: 71.42857%;
  }
  [class*="grid__lg-4of7"] {
    width: 57.14286%;
  }
  [class*="grid__lg-3of7"] {
    width: 42.85714%;
  }
  [class*="grid__lg-2of7"] {
    width: 28.57143%;
  }
  [class*="grid__lg-1of7"] {
    width: 14.28571%;
  }
  [class*="grid__lg-5of6"] {
    width: 83.33333%;
  }
  [class*="grid__lg-1of6"] {
    width: 16.66667%;
  }
  [class*="grid__lg-4of5"] {
    width: 80%;
  }
  [class*="grid__lg-3of5"] {
    width: 60%;
  }
  [class*="grid__lg-2of5"] {
    width: 40%;
  }
  [class*="grid__lg-1of5"] {
    width: 20%;
  }
  /*

    Media Grid

    The Media Grid allows you to place a grid of photos or videos (catalog or
    retail products, etc.) without floating them, alleviating the need to concern
    yourself with clearing the floats with rows should an object extend further
    than another. Also, because they are not floating, it allows you to align
    the entire group center, making sure any "orphaned" grid entries are centered.

    The syntax is simply the same as the regular responsive grid system, except
    the row class has a `--flex` modifier.

    ````media-grid
    <ul class="grid__sm-halves grid__med-thirds grid__lg-quarters">
        <li>
            <figure class="figure">
                <img src="http://placehold.it/400">
                <figcaption>Alderaan is peaceful. We have no weapons.</figcaption>
            </figure>
        </li>
        <li>
            <figure class="figure">
                <img src="http://placehold.it/400">
            </figure>
        </li>
        <li>
            <figure class="figure">
                <img src="http://placehold.it/400">
                <figcaption>Alderaan is peaceful. We have no weapons.</figcaption>
            </figure>
        </li>
        <li>
            <figure class="figure">
                <img src="http://placehold.it/400">
            </figure>
        </li>
        <li>
            <figure class="figure">
                <img src="http://placehold.it/400">
                <figcaption>Alderaan is peaceful. We have no weapons.</figcaption>
            </figure>
        </li>
        <li>
            <figure class="figure">
                <img src="http://placehold.it/400">
            </figure>
        </li>
        <li>
            <figure class="figure">
                <img src="http://placehold.it/400">
            </figure>
        </li>
    </ul>
    ````

    */
  .grid__lg-row--flex,
  .grid__lg-quarters,
  .grid__lg-thirds,
  .grid__lg-halves {
    letter-spacing: -0.31em;
    text-rendering: optimizespeed;
  }
  .grid__lg-row--flex > [class*="grid__lg"],
  .grid__lg-quarters > *,
  .grid__lg-thirds > *,
  .grid__lg-halves > * {
    float: none;
    display: inline-block;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
  }
  .opera-only :-o-prefocus,
  .grid__lg-row--flex,
  .grid__lg-quarters,
  .grid__lg-thirds,
  .grid__lg-halves {
    word-spacing: -0.43em;
  }
}
/*

Off-Canvas Trigger (Small Screens Only)

The Off-Canvas Trigger is a simple way of pushing a column of content
off-canvas and sliding it on upon trigger. In this case, the `is-active` 
class is placed on the `.off-canvas` wrapping element so that it can 
adjust both child elements.

@TODO: Adjust for IE9?
@TODO: Show better example w/ Reveal plugin

    <div class="off-canvas__shift--left">
        <div class="off-canvas__primary">
            ...
        </div>
        <div class="off-canvas__secondary">
            ...
        </div>
    </div>

*/
.off-canvas__shift-base,
.js .off-canvas__shift--left,
.js .off-canvas__shift--right,
.js .off-canvas__shift--top,
.js .off-canvas__shift--bottom {
  position: relative;
  overflow: hidden;
}
.js .off-canvas__primary-base,
.js .off-canvas__primary {
  position: relative;
  width: 100%;
  z-index: 1;
}
.off-canvas__shift-base.is-active > .off-canvas__primary-base,
.js .off-canvas__shift--left.is-active > .off-canvas__primary-base,
.js .off-canvas__shift--right.is-active > .off-canvas__primary-base,
.js .off-canvas__shift--top.is-active > .off-canvas__primary-base,
.js .off-canvas__shift--bottom.is-active > .off-canvas__primary-base,
.off-canvas__shift-base.is-active > .off-canvas__primary {
  transform: translate3d(0, 0, 0);
  height: 100vh;
  overflow: hidden;
}
.off-canvas__shift-base.is-active > .off-canvas__primary-base,
.off-canvas__shift-base.was-active > .off-canvas__primary-base,
.js .off-canvas__shift--left.is-active > .off-canvas__primary-base,
.js .off-canvas__shift--left.was-active > .off-canvas__primary-base,
.js .off-canvas__shift--right.is-active > .off-canvas__primary-base,
.js .off-canvas__shift--right.was-active > .off-canvas__primary-base,
.js .off-canvas__shift--top.is-active > .off-canvas__primary-base,
.js .off-canvas__shift--top.was-active > .off-canvas__primary-base,
.js .off-canvas__shift--bottom.is-active > .off-canvas__primary-base,
.js .off-canvas__shift--bottom.was-active > .off-canvas__primary-base,
.off-canvas__shift-base.is-active > .off-canvas__primary,
.off-canvas__shift-base.was-active > .off-canvas__primary {
  transition: all 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media all and (min-width: 48em) {
  .off-canvas__shift-base.is-active > .off-canvas__primary-base,
  .off-canvas__shift-base.was-active > .off-canvas__primary-base,
  .js .off-canvas__shift--left.is-active > .off-canvas__primary-base,
  .js .off-canvas__shift--left.was-active > .off-canvas__primary-base,
  .js .off-canvas__shift--right.is-active > .off-canvas__primary-base,
  .js .off-canvas__shift--right.was-active > .off-canvas__primary-base,
  .js .off-canvas__shift--top.is-active > .off-canvas__primary-base,
  .js .off-canvas__shift--top.was-active > .off-canvas__primary-base,
  .js .off-canvas__shift--bottom.is-active > .off-canvas__primary-base,
  .js .off-canvas__shift--bottom.was-active > .off-canvas__primary-base,
  .off-canvas__shift-base.is-active > .off-canvas__primary,
  .off-canvas__shift-base.was-active > .off-canvas__primary {
    transition-duration: 0.25s;
  }
}
.js .off-canvas__secondary-base,
.js .off-canvas__secondary {
  transform: translate3d(0, 0, 0);
  position: relative;
  width: 100%;
  z-index: 2;
}
.off-canvas__shift-base.is-active > .off-canvas__secondary-base,
.off-canvas__shift-base.was-active > .off-canvas__secondary-base,
.js .off-canvas__shift--left.is-active > .off-canvas__secondary-base,
.js .off-canvas__shift--left.was-active > .off-canvas__secondary-base,
.js .off-canvas__shift--right.is-active > .off-canvas__secondary-base,
.js .off-canvas__shift--right.was-active > .off-canvas__secondary-base,
.js .off-canvas__shift--top.is-active > .off-canvas__secondary-base,
.js .off-canvas__shift--top.was-active > .off-canvas__secondary-base,
.js .off-canvas__shift--bottom.is-active > .off-canvas__secondary-base,
.js .off-canvas__shift--bottom.was-active > .off-canvas__secondary-base,
.off-canvas__shift-base.is-active > .off-canvas__secondary,
.off-canvas__shift-base.was-active > .off-canvas__secondary {
  transition: all 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media all and (min-width: 48em) {
  .off-canvas__shift-base.is-active > .off-canvas__secondary-base,
  .off-canvas__shift-base.was-active > .off-canvas__secondary-base,
  .js .off-canvas__shift--left.is-active > .off-canvas__secondary-base,
  .js .off-canvas__shift--left.was-active > .off-canvas__secondary-base,
  .js .off-canvas__shift--right.is-active > .off-canvas__secondary-base,
  .js .off-canvas__shift--right.was-active > .off-canvas__secondary-base,
  .js .off-canvas__shift--top.is-active > .off-canvas__secondary-base,
  .js .off-canvas__shift--top.was-active > .off-canvas__secondary-base,
  .js .off-canvas__shift--bottom.is-active > .off-canvas__secondary-base,
  .js .off-canvas__shift--bottom.was-active > .off-canvas__secondary-base,
  .off-canvas__shift-base.is-active > .off-canvas__secondary,
  .off-canvas__shift-base.was-active > .off-canvas__secondary {
    transition-duration: 0.25s;
  }
}
.js .off-canvas__shift--left.is-active {
  height: 100vh;
  overflow: hidden;
}
.js .off-canvas__shift--right.is-active {
  height: 100vh;
  overflow: hidden;
}
.js .off-canvas__shift--top {
  min-height: 100vh;
}
.js .off-canvas__shift--top.is-active {
  height: 100vh;
  overflow: hidden;
}
.js .off-canvas__shift--bottom {
  min-height: 100vh;
}
.js .off-canvas__shift--bottom.is-active {
  height: 100vh;
  overflow: hidden;
}
.js .off-canvas__shift--left > .off-canvas__primary,
.js .off-canvas__shift--right > .off-canvas__primary {
  min-height: 100vh;
}
.js .off-canvas__shift--left > .off-canvas__primary {
  transform: translate3d(-100%, 0, 0);
  float: right;
  margin-right: -100%;
}
.js .off-canvas__shift--right > .off-canvas__primary {
  transform: translate3d(100%, 0, 0);
  float: left;
  margin-left: -100%;
}
@media all and (min-width: 48em) {
  .js .off-canvas__shift--right.is-active > .off-canvas__primary {
    transform: translate3d(30%, 0, 0);
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__shift--right.is-active > .off-canvas__primary {
    transform: translate3d(40%, 0, 0);
  }
}
@media all and (min-width: 48em) {
  .js .off-canvas__shift--left.is-active > .off-canvas__primary {
    transform: translate3d(-30%, 0, 0);
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__shift--left.is-active > .off-canvas__primary {
    transform: translate3d(-40%, 0, 0);
  }
}
.js .off-canvas__shift--top.is-active > .off-canvas__primary,
.js .off-canvas__shift--bottom.is-active > .off-canvas__primary {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
}
.js .off-canvas__shift--top.is-active > .off-canvas__primary {
  transform: translate3d(0, 80vh, 0);
}
.js .off-canvas__shift--bottom.is-active > .off-canvas__primary {
  transform: translate3d(0, -80vh, 0);
}
.js .off-canvas__shift--left > .off-canvas__secondary,
.js .off-canvas__shift--right > .off-canvas__secondary {
  min-height: 100vh;
  height: 100vh;
  overflow: hidden;
  overflow-y: auto;
}
@media all and (min-width: 48em) {
  .js .off-canvas__shift--left > .off-canvas__secondary,
  .js .off-canvas__shift--right > .off-canvas__secondary {
    width: 70%;
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__shift--left > .off-canvas__secondary,
  .js .off-canvas__shift--right > .off-canvas__secondary {
    width: 60%;
  }
}
.js .off-canvas__shift--left > .off-canvas__secondary {
  transform: translate3d(0, 0, 0);
  float: left;
  margin-left: -100%;
}
@media all and (min-width: 48em) {
  .js .off-canvas__shift--left > .off-canvas__secondary {
    margin-left: -70%;
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__shift--left > .off-canvas__secondary {
    margin-left: -60%;
  }
}
.js .off-canvas__shift--right > .off-canvas__secondary {
  transform: translate3d(0, 0, 0);
  float: right;
  margin-right: -100%;
}
@media all and (min-width: 48em) {
  .js .off-canvas__shift--right > .off-canvas__secondary {
    margin-right: -70%;
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__shift--right > .off-canvas__secondary {
    margin-right: -60%;
  }
}
.js .off-canvas__shift--left.is-active > .off-canvas__secondary {
  transform: translate3d(100%, 0, 0);
}
.js .off-canvas__shift--right.is-active > .off-canvas__secondary {
  transform: translate3d(-100%, 0, 0);
}
.js .off-canvas__shift--top > .off-canvas__secondary,
.js .off-canvas__shift--bottom > .off-canvas__secondary {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  height: 80vh;
  overflow: hidden;
}
.js .off-canvas__shift--top > .off-canvas__secondary {
  transform: translate3d(0, -100%, 0);
  top: 0;
}
.js .off-canvas__shift--bottom > .off-canvas__secondary {
  transform: translate3d(0, 100%, 0);
  bottom: 0;
}
.js .off-canvas__shift--top.is-active > .off-canvas__secondary,
.js .off-canvas__shift--bottom.is-active > .off-canvas__secondary {
  transform: translate3d(0, 0, 0);
  overflow: auto;
}
.off-canvas__slide-base,
.js .off-canvas__slide--left,
.js .off-canvas__slide--right,
.js .off-canvas__slide--top,
.js .off-canvas__slide--bottom {
  position: fixed;
  z-index: 110;
  overflow: auto;
  overflow-x: hidden;
  transition: all 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.off-canvas__slide-base.is-revealed,
.js .off-canvas__slide--left.is-revealed,
.js .off-canvas__slide--right.is-revealed,
.js .off-canvas__slide--top.is-revealed,
.js .off-canvas__slide--bottom.is-revealed {
  transform: translate3d(0, 0, 0);
}
.js .off-canvas__slide--left {
  top: 0;
  bottom: 0;
  left: 0;
  width: 80%;
  transform: translate3d(-100%, 0, 0);
}
@media all and (min-width: 48em) {
  .js .off-canvas__slide--left {
    width: 33%;
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__slide--left {
    width: 25%;
  }
}
@media all and (min-width: 77.5em) {
  .js .off-canvas__slide--left {
    width: 20%;
  }
}
.js .off-canvas__slide--right {
  top: 0;
  right: 0;
  bottom: 0;
  width: 80%;
  transform: translate3d(100%, 0, 0);
}
@media all and (min-width: 48em) {
  .js .off-canvas__slide--right {
    width: 33%;
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__slide--right {
    width: 25%;
  }
}
@media all and (min-width: 77.5em) {
  .js .off-canvas__slide--right {
    width: 20%;
  }
}
.js .off-canvas__slide--top {
  top: 0;
  right: 0;
  left: 0;
  height: 90%;
  transform: translate3d(0, -100%, 0);
}
@media all and (min-width: 48em) {
  .js .off-canvas__slide--top {
    height: 33%;
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__slide--top {
    height: 25%;
  }
}
@media all and (min-width: 77.5em) {
  .js .off-canvas__slide--top {
    height: 20%;
  }
}
.js .off-canvas__slide--bottom {
  right: 0;
  bottom: 0;
  left: 0;
  height: 90%;
  transform: translate3d(0, 100%, 0);
}
@media all and (min-width: 48em) {
  .js .off-canvas__slide--bottom {
    height: 33%;
  }
}
@media all and (min-width: 60em) {
  .js .off-canvas__slide--bottom {
    height: 25%;
  }
}
@media all and (min-width: 77.5em) {
  .js .off-canvas__slide--bottom {
    height: 20%;
  }
}
.overflow-list {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  white-space: nowrap;
}
.overflow-list__item {
  display: inline-block;
  white-space: normal;
  vertical-align: top;
  position: relative;
}
@media all and (min-width: 48em) {
  .overflow-list--until-medium {
    overflow: visible;
    white-space: normal;
  }
}
@media all and (min-width: 60em) {
  .overflow-list--until-large {
    overflow: visible;
    white-space: normal;
  }
}
@media all and (min-width: 77.5em) {
  .overflow-list--until-x-large {
    overflow: visible;
    white-space: normal;
  }
}
/*

Wrapper

This is the site-wide containing class. Put it around anything you want to be
contained in the "site width". By default, caps off at `1150px`.

*/
.wrappers__inner,
.wrappers__wrapper {
  width: 92%;
  margin-left: auto;
  margin-right: auto;
}
@media all and (min-width: 48em) {
  .wrappers__inner,
  .wrappers__wrapper {
    width: 93.55%;
  }
}
@media all and (min-width: 60em) {
  .wrappers__inner,
  .wrappers__wrapper {
    max-width: 1400px;
  }
}
@media all and (max-width: 47.9375em) {
  .wrappers__inner--sm {
    width: 92%;
    margin-left: auto;
    margin-right: auto;
  }
}
.wrappers__wrapper-max {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}
.wrappers__full-bleed {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}
.wrappers__offset {
  padding: 0 4%;
}
@media all and (min-width: 93.53287012292891em) {
  .wrappers__offset {
    padding: 0 calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
.wrappers__offset--left {
  padding-left: 4%;
}
@media all and (min-width: 93.53287012292891em) {
  .wrappers__offset--left {
    padding-left: calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
.wrappers__offset--right {
  padding-right: 4%;
}
@media all and (min-width: 93.53287012292891em) {
  .wrappers__offset--right {
    padding-right: calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
.wrappers__offset-vw--left {
  padding-left: 3.225vw;
}
@media all and (min-width: 93.53287012292891em) {
  .wrappers__offset-vw--left {
    padding-left: calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
.wrappers__offset-vw--right {
  padding-right: 3.225vw;
}
@media all and (min-width: 93.53287012292891em) {
  .wrappers__offset-vw--right {
    padding-right: calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
.wrappers__offset-m--left {
  margin-left: 4%;
}
@media all and (min-width: 93.53287012292891em) {
  .wrappers__offset-m--left {
    margin-left: calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
.wrappers__offset-m--right {
  margin-right: 4%;
}
@media all and (min-width: 93.53287012292891em) {
  .wrappers__offset-m--right {
    margin-right: calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
.wrappers__break-out {
  width: calc(100% + (3.4473543559593804% * 2));
  position: relative;
  left: -3.4473543559593804%;
}
@media all and (min-width: 93.53287012292891em) {
  .wrappers__break-out {
    width: calc(100% + ((100vw - 1400px)));
    left: calc(((100vw - 1400px)) / -2);
  }
}
.zi--0 {
  z-index: 0 !important;
}
.zi--1 {
  z-index: 1 !important;
}
.zi--10 {
  z-index: 10 !important;
}
.zi--50 {
  z-index: 50 !important;
}
.zi--100 {
  z-index: 100 !important;
}
.zi--neg-1 {
  z-index: -1 !important;
}
.zi--neg-10 {
  z-index: -10 !important;
}
.zi--neg-50 {
  z-index: -50 !important;
}
.zi--neg-100 {
  z-index: -100 !important;
}
/*

Tables

*/
/*

Default Tables

Simple, clean default styles. Just mark it up like a normal table.

Undoes table to more of a definition list on smaller viewports.

See: http://codepen.io/aarongustafson/pen/ucJGv

````tables
<table>
    <thead>
        <tr>
            <th scope="col">#</th>
            <th scope="col">First Name</th>
            <th scope="col">Last Name</th>
            <th scope="col">Language</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td data-th="#">1</td>
            <td data-th="First Name">Some</td>
            <td data-th="Last Name">One</td>
            <td data-th="Language">English</td>
        </tr>
        <tr>
            <td data-th="#">2</td>
            <td data-th="First Name">Joe</td>
            <td data-th="Last Name">Sixpack</td>
            <td data-th="Language">English</td>
        </tr>
        <tr>
            <td data-th="#">3</td>
            <td data-th="First Name">Stu</td>
            <td data-th="Last Name">Dent</td>
            <td data-th="Language">Code</td>
        </tr>
    </tbody>
</table>
````

*/
table {
  width: 100%;
  max-width: 100%;
  border-spacing: 0;
}
th,
td {
  padding: 0.625rem 0.375rem;
  text-align: left;
}
th {
  padding-top: 0.625rem;
}
@media all and (max-width: 47.9375em) {
  table {
    display: block;
    width: 100%;
  }
  tbody,
  tr,
  th,
  td {
    border: 0;
    display: block;
    padding: 0;
    text-align: left;
    white-space: normal;
  }
  thead {
    display: none;
    visibility: hidden;
  }
  tr {
    margin-top: 1.25em;
  }
  td[data-th]:before {
    content: attr(data-th) ":\00A0";
    display: inline-block;
    font-weight: bold;
  }
  td:empty {
    display: none;
  }
}
@media all and (min-width: 48em) {
  th,
  td {
    padding: 0.625rem 0.75rem;
  }
}
/*

Animated Revealing/Hiding Block Modules

When JavaScript is enabled, these blocks are used (most easily in conjunction 
with Motif jQuery plugins) to reveal and hide blocks of content, sometimes 
accompanied by CSS3 animations.
    
Reveal Target

`.reveal__target` is a simple class that is accessibly hidden by default.
Add the `.is-revealed` class to show it.

    <div class="reveal__target">
        I am hidden.
    </div>
    <div class="reveal__target is-revealed">
        I am no longer hidden.
    </div>

*/
.js .reveal__target.is-revealed {
  overflow: visible;
}
/*

Animated Revealing/Hiding Block Modules

When JavaScript is enabled, these blocks are used (most easily in conjunction 
with Motif jQuery plugins) to reveal and hide blocks of content, sometimes 
accompanied by CSS3 animations.
    
Expand Target

`.expand__target` has a maximum height of `0` by default, and once it 
receives the `.is-expanded` class, animates in height to its maximum value. 
This is the cheap CSS way of expanding animation, as in collapsible 
accordions. More precise timing most likely requires JS enhancement.

    <div class="expand__target">
        I am hidden from view.
    </div>
    <div class="expand__target is-expanded">
        I have expanded into view.
    </div>

*/
.js .expand__target {
  max-height: 0;
  overflow: hidden;
}
.js .expand__target.is-expanded {
  max-height: 999px;
}
.js .expand__target.is-expanded,
.js .expand__target.was-expanded {
  transition: all 0.65s cubic-bezier(0.645, 0.045, 0.355, 1);
}
/*

Animated Revealing/Hiding Block Modules

When JavaScript is enabled, these blocks are used (most easily in conjunction 
with Motif jQuery plugins) to reveal and hide blocks of content, sometimes 
accompanied by CSS3 animations.

Fade Target

`.fade__target` is the same as `.expand__target` (in that it grows in 
height), but it adds opacity fading to the mix.

    <div class="fade__target">
        I am hidden.
    </div>
    <div class="fade__target is-faded">
        I have faded and expanded into view.
    </div>

*/
.js .fade__target {
  opacity: 0;
  max-height: 0;
  overflow: hidden;
}
.js .fade__target.is-faded {
  opacity: 1;
  max-height: 999px;
}
.js .fade__target.is-faded,
.js .fade__target.was-faded {
  transition: all 0.65s cubic-bezier(0.645, 0.045, 0.355, 1);
}
/*

Main Nav Module

A minor enhancement to the Reveal or Expand Target modules if added to the
main navigation bar. This snippet, on Medium screens and larger, makes sure
the expandable Nav (on smaller screens) is no longer hidden, and that the 
Menu Title (be it "Main Menu", the hamburger icon, etc.) is hidden from view.

    <nav class="nav-bar--menu" role="navigation">
        <h3 class="menu__title js-expand" id="reveal-main-nav">
            <svg class="icon"><use xlink:href="#rows"></svg>
            Main Menu
        </h3>
        <ul class="menu__list expand__target" id="main-nav-list">
            ...
        </ul>
    </nav>

*/
@media all and (min-width: 48em) {
  .js .menu__list {
    max-height: 999px;
  }
  .menu__title {
    display: none;
  }
}
/*

Tabs

The tabs module (and accompanying plugin) creates a very basic widget that 
allows embedding and basic styling.

````tabs
<section class="tabs js-tabs">
    <nav role="navigation">
        <ul>
            <li>
                <a href="#first-tab">
                    First Tab
                </a>
            </li>
            <li>
                <a href="#second-tab">
                    Second Tab
                </a>
            </li>
        </ul>
    </nav>
    <div>
        <section id="first-tab">
            <h3>First Tab</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </section>
        <section id="second-tab">
            <h3>Second Tab</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </section>
    </div>
</section>
````

*/
.js .tabs > nav + *,
.js .tabs__section {
  position: relative;
  overflow: hidden;
}
.js .tabs > nav + * > *,
.js .tabs .tab {
  display: none;
}
.js .tabs > nav + * > *.is-current,
.js .tabs .tab.is-current {
  display: block;
}
.flatpickr-calendar {
  background: transparent;
  opacity: 0;
  display: none;
  text-align: center;
  visibility: hidden;
  padding: 0;
  animation: none;
  direction: ltr;
  border: 0;
  font-size: 0.875rem;
  line-height: 1.5rem;
  border-radius: 5px;
  position: absolute;
  width: 307.875px;
  box-sizing: border-box;
  touch-action: manipulation;
  background: #fff;
  box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, 0.08);
}
.flatpickr-calendar.open,
.flatpickr-calendar.inline {
  opacity: 1;
  max-height: 640px;
  visibility: visible;
}
.flatpickr-calendar.open {
  display: inline-block;
  z-index: 99999;
}
.flatpickr-calendar.animate.open {
  animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
}
.flatpickr-calendar.inline {
  display: block;
  position: relative;
  top: 2px;
}
.flatpickr-calendar.static {
  position: absolute;
  top: calc(100% + 2px);
}
.flatpickr-calendar.static.open {
  z-index: 999;
  display: block;
}
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
  box-shadow: none !important;
}
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
  box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
}
.flatpickr-calendar .hasWeeks .dayContainer,
.flatpickr-calendar .hasTime .dayContainer {
  border-bottom: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.flatpickr-calendar .hasWeeks .dayContainer {
  border-left: 0;
}
.flatpickr-calendar.hasTime .flatpickr-time {
  height: 40px;
  border-top: 1px solid #e6e6e6;
}
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
  height: auto;
}
.flatpickr-calendar:before,
.flatpickr-calendar:after {
  position: absolute;
  display: block;
  pointer-events: none;
  border: solid transparent;
  content: '';
  height: 0;
  width: 0;
  left: 22px;
}
.flatpickr-calendar.rightMost:before,
.flatpickr-calendar.arrowRight:before,
.flatpickr-calendar.rightMost:after,
.flatpickr-calendar.arrowRight:after {
  left: auto;
  right: 22px;
}
.flatpickr-calendar.arrowCenter:before,
.flatpickr-calendar.arrowCenter:after {
  left: 50%;
  right: 50%;
}
.flatpickr-calendar:before {
  border-width: 5px;
  margin: 0 -5px;
}
.flatpickr-calendar:after {
  border-width: 4px;
  margin: 0 -4px;
}
.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after {
  bottom: 100%;
}
.flatpickr-calendar.arrowTop:before {
  border-bottom-color: #e6e6e6;
}
.flatpickr-calendar.arrowTop:after {
  border-bottom-color: #fff;
}
.flatpickr-calendar.arrowBottom:before,
.flatpickr-calendar.arrowBottom:after {
  top: 100%;
}
.flatpickr-calendar.arrowBottom:before {
  border-top-color: #e6e6e6;
}
.flatpickr-calendar.arrowBottom:after {
  border-top-color: #fff;
}
.flatpickr-calendar:focus {
  outline: 0;
}
.flatpickr-wrapper {
  position: relative;
  display: inline-block;
}
.flatpickr-months {
  display: flex;
}
.flatpickr-months .flatpickr-month {
  background: transparent;
  color: rgba(0, 0, 0, 0.9);
  fill: rgba(0, 0, 0, 0.9);
  height: 34px;
  line-height: 1;
  text-align: center;
  position: relative;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  overflow: hidden;
  flex: 1;
}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  text-decoration: none;
  cursor: pointer;
  position: absolute;
  top: 0;
  height: 34px;
  padding: 10px;
  z-index: 3;
  color: rgba(0, 0, 0, 0.9);
  fill: rgba(0, 0, 0, 0.9);
}
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
  display: none;
}
.flatpickr-months .flatpickr-prev-month i,
.flatpickr-months .flatpickr-next-month i {
  position: relative;
}
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
  /*
      /*rtl:begin:ignore*/
  left: 0 /*
      /*rtl:end:ignore*/;
}
/*
      /*rtl:begin:ignore*/
/*
      /*rtl:end:ignore*/
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
  /*
      /*rtl:begin:ignore*/
  right: 0 /*
      /*rtl:end:ignore*/;
}
/*
      /*rtl:begin:ignore*/
/*
      /*rtl:end:ignore*/
.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
  color: #959ea9;
}
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
  fill: #f64747;
}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
  width: 14px;
  height: 14px;
}
.flatpickr-months .flatpickr-prev-month svg path,
.flatpickr-months .flatpickr-next-month svg path {
  transition: fill 0.1s;
  fill: inherit;
}
.numInputWrapper {
  position: relative;
  height: auto;
}
.numInputWrapper input,
.numInputWrapper span {
  display: inline-block;
}
.numInputWrapper input {
  width: 100%;
}
.numInputWrapper input::-ms-clear {
  display: none;
}
.numInputWrapper input::-webkit-outer-spin-button,
.numInputWrapper input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
.numInputWrapper span {
  position: absolute;
  right: 0;
  width: 14px;
  padding: 0 4px 0 2px;
  height: 50%;
  line-height: 50%;
  opacity: 0;
  cursor: pointer;
  border: 1px solid rgba(57, 57, 57, 0.15);
  box-sizing: border-box;
}
.numInputWrapper span:hover {
  background: rgba(0, 0, 0, 0.1);
}
.numInputWrapper span:active {
  background: rgba(0, 0, 0, 0.2);
}
.numInputWrapper span:after {
  display: block;
  content: "";
  position: absolute;
}
.numInputWrapper span.arrowUp {
  top: 0;
  border-bottom: 0;
}
.numInputWrapper span.arrowUp:after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-bottom: 4px solid rgba(57, 57, 57, 0.6);
  top: 26%;
}
.numInputWrapper span.arrowDown {
  top: 50%;
}
.numInputWrapper span.arrowDown:after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid rgba(57, 57, 57, 0.6);
  top: 40%;
}
.numInputWrapper span svg {
  width: inherit;
  height: auto;
}
.numInputWrapper span svg path {
  fill: rgba(0, 0, 0, 0.5);
}
.numInputWrapper:hover {
  background: rgba(0, 0, 0, 0.05);
}
.numInputWrapper:hover span {
  opacity: 1;
}
.flatpickr-current-month {
  font-size: 135%;
  line-height: inherit;
  font-weight: 300;
  color: inherit;
  position: absolute;
  width: 75%;
  left: 12.5%;
  padding: 7.48px 0 0 0;
  line-height: 1;
  height: 34px;
  display: inline-block;
  text-align: center;
  transform: translate3d(0, 0, 0);
}
.flatpickr-current-month span.cur-month {
  font-family: inherit;
  font-weight: 700;
  color: inherit;
  display: inline-block;
  margin-left: 0.5ch;
  padding: 0;
}
.flatpickr-current-month span.cur-month:hover {
  background: rgba(0, 0, 0, 0.05);
}
.flatpickr-current-month .numInputWrapper {
  width: 6ch;
  width: 7ch\0;
  display: inline-block;
}
.flatpickr-current-month .numInputWrapper span.arrowUp:after {
  border-bottom-color: rgba(0, 0, 0, 0.9);
}
.flatpickr-current-month .numInputWrapper span.arrowDown:after {
  border-top-color: rgba(0, 0, 0, 0.9);
}
.flatpickr-current-month input.cur-year {
  background: transparent;
  box-sizing: border-box;
  color: inherit;
  cursor: text;
  padding: 0 0 0 0.5ch;
  margin: 0;
  display: inline-block;
  font-size: inherit;
  font-family: inherit;
  font-weight: 300;
  line-height: inherit;
  height: auto;
  border: 0;
  border-radius: 0;
  vertical-align: initial;
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
  appearance: textfield;
}
.flatpickr-current-month input.cur-year:focus {
  outline: 0;
}
.flatpickr-current-month input.cur-year[disabled],
.flatpickr-current-month input.cur-year[disabled]:hover {
  font-size: 100%;
  color: rgba(0, 0, 0, 0.5);
  background: transparent;
  pointer-events: none;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
  appearance: menulist;
  background: transparent;
  border: none;
  border-radius: 0;
  box-sizing: border-box;
  color: inherit;
  cursor: pointer;
  font-size: inherit;
  font-family: inherit;
  font-weight: 300;
  height: auto;
  line-height: inherit;
  margin: -1px 0 0 0;
  outline: none;
  padding: 0 0 0 0.5ch;
  position: relative;
  vertical-align: initial;
  -webkit-box-sizing: border-box;
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  width: auto;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
.flatpickr-current-month .flatpickr-monthDropdown-months:active {
  outline: none;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
  background: rgba(0, 0, 0, 0.05);
}
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
  background-color: transparent;
  outline: none;
  padding: 0;
}
.flatpickr-weekdays {
  background: transparent;
  text-align: center;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
  height: 28px;
}
.flatpickr-weekdays .flatpickr-weekdaycontainer {
  display: flex;
  flex: 1;
}
span.flatpickr-weekday {
  cursor: default;
  font-size: 90%;
  background: transparent;
  color: rgba(0, 0, 0, 0.54);
  line-height: 1;
  margin: 0;
  text-align: center;
  display: block;
  flex: 1;
  font-weight: bolder;
}
.dayContainer,
.flatpickr-weeks {
  padding: 1px 0 0 0;
}
.flatpickr-days {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  width: 307.875px;
}
.flatpickr-days:focus {
  outline: 0;
}
.dayContainer {
  padding: 0;
  outline: 0;
  text-align: left;
  width: 307.875px;
  min-width: 307.875px;
  max-width: 307.875px;
  box-sizing: border-box;
  display: inline-block;
  display: flex;
  flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  justify-content: space-around;
  transform: translate3d(0, 0, 0);
  opacity: 1;
}
.dayContainer + .dayContainer {
  box-shadow: -1px 0 0 #e6e6e6;
}
.flatpickr-day {
  background: none;
  border: 1px solid transparent;
  border-radius: 150px;
  box-sizing: border-box;
  color: #393939;
  cursor: pointer;
  font-weight: 400;
  width: 14.2857143%;
  flex-basis: 14.2857143%;
  max-width: 39px;
  height: 39px;
  line-height: 2.4375rem;
  margin: 0;
  display: inline-block;
  position: relative;
  justify-content: center;
  text-align: center;
}
.flatpickr-day.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange,
.flatpickr-day.today.inRange,
.flatpickr-day.prevMonthDay.today.inRange,
.flatpickr-day.nextMonthDay.today.inRange,
.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover,
.flatpickr-day:focus,
.flatpickr-day.prevMonthDay:focus,
.flatpickr-day.nextMonthDay:focus {
  cursor: pointer;
  outline: 0;
  background: #e6e6e6;
  border-color: #e6e6e6;
}
.flatpickr-day.today {
  border-color: #959ea9;
}
.flatpickr-day.today:hover,
.flatpickr-day.today:focus {
  border-color: #959ea9;
  background: #959ea9;
  color: #fff;
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
  background: #569ff7;
  box-shadow: none;
  color: #fff;
  border-color: #569ff7;
}
.flatpickr-day.selected.startRange,
.flatpickr-day.startRange.startRange,
.flatpickr-day.endRange.startRange {
  border-radius: 50px 0 0 50px;
}
.flatpickr-day.selected.endRange,
.flatpickr-day.startRange.endRange,
.flatpickr-day.endRange.endRange {
  border-radius: 0 50px 50px 0;
}
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
  box-shadow: -10px 0 0 #569ff7;
}
.flatpickr-day.selected.startRange.endRange,
.flatpickr-day.startRange.startRange.endRange,
.flatpickr-day.endRange.startRange.endRange {
  border-radius: 50px;
}
.flatpickr-day.inRange {
  border-radius: 0;
  box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay,
.flatpickr-day.notAllowed,
.flatpickr-day.notAllowed.prevMonthDay,
.flatpickr-day.notAllowed.nextMonthDay {
  color: rgba(57, 57, 57, 0.3);
  background: transparent;
  border-color: transparent;
  cursor: default;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
  cursor: not-allowed;
  color: rgba(57, 57, 57, 0.1);
}
.flatpickr-day.week.selected {
  border-radius: 0;
  box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
}
.flatpickr-day.hidden {
  visibility: hidden;
}
.rangeMode .flatpickr-day {
  margin-top: 1px;
}
.flatpickr-weekwrapper {
  float: left;
}
.flatpickr-weekwrapper .flatpickr-weeks {
  padding: 0 12px;
  box-shadow: 1px 0 0 #e6e6e6;
}
.flatpickr-weekwrapper .flatpickr-weekday {
  float: none;
  width: 100%;
  line-height: 1.75rem;
}
.flatpickr-weekwrapper span.flatpickr-day,
.flatpickr-weekwrapper span.flatpickr-day:hover {
  display: block;
  width: 100%;
  max-width: none;
  color: rgba(57, 57, 57, 0.3);
  background: transparent;
  cursor: default;
  border: none;
}
.flatpickr-innerContainer {
  display: block;
  display: flex;
  box-sizing: border-box;
  overflow: hidden;
}
.flatpickr-rContainer {
  display: inline-block;
  padding: 0;
  box-sizing: border-box;
}
.flatpickr-time {
  text-align: center;
  outline: 0;
  display: block;
  height: 0;
  line-height: 2.5rem;
  max-height: 40px;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
}
.flatpickr-time:after {
  content: "";
  display: table;
  clear: both;
}
.flatpickr-time .numInputWrapper {
  flex: 1;
  width: 40%;
  height: 40px;
  float: left;
}
.flatpickr-time .numInputWrapper span.arrowUp:after {
  border-bottom-color: #393939;
}
.flatpickr-time .numInputWrapper span.arrowDown:after {
  border-top-color: #393939;
}
.flatpickr-time.hasSeconds .numInputWrapper {
  width: 26%;
}
.flatpickr-time.time24hr .numInputWrapper {
  width: 49%;
}
.flatpickr-time input {
  background: transparent;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  text-align: center;
  margin: 0;
  padding: 0;
  height: inherit;
  line-height: inherit;
  color: #393939;
  font-size: 0.875rem;
  position: relative;
  box-sizing: border-box;
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
  appearance: textfield;
}
.flatpickr-time input.flatpickr-hour {
  font-weight: bold;
}
.flatpickr-time input.flatpickr-minute,
.flatpickr-time input.flatpickr-second {
  font-weight: 400;
}
.flatpickr-time input:focus {
  outline: 0;
  border: 0;
}
.flatpickr-time .flatpickr-time-separator,
.flatpickr-time .flatpickr-am-pm {
  height: inherit;
  float: left;
  line-height: inherit;
  color: #393939;
  font-weight: bold;
  width: 2%;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  align-self: center;
}
.flatpickr-time .flatpickr-am-pm {
  outline: 0;
  width: 18%;
  cursor: pointer;
  text-align: center;
  font-weight: 400;
}
.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time input:focus,
.flatpickr-time .flatpickr-am-pm:focus {
  background: #eee;
}
.flatpickr-input[readonly] {
  cursor: pointer;
}
@keyframes fpFadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -20px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
/**
 * General Carousel Styles
 */
.carousel {
  position: relative;
  overflow: hidden;
  height: 100%;
}
.cardGrid .carousel,
.cardSlider .carousel,
.featuredEvents .carousel,
.simpleCards .carousel,
.blogCards .carousel {
  overflow: visible;
}
.carousel__slides {
  --slidesOffset: 0px;
  height: 100%;
  list-style: none outside none;
  margin: 0;
  padding: 0;
  display: flex;
  will-change: transform;
  transform: translate3d(0px, 0, 0);
  transform: translate3d(var(--slidesOffset), 0, 0);
  transition: transform 0.35s ease-out;
}
.carousel__slides.is-dragging {
  transition-duration: 0.05s;
  transition-easing: linear;
}
.carousel__slides li:before {
  display: none;
}
.carousel__slide {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  width: 100%;
  top: 0;
  left: 0;
}
.carousel__slide:focus {
  outline: #0396FF solid 0.1875rem;
}
.carousel__button {
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 50%;
  outline: none;
  background: none;
}
.carousel__button:focus {
  outline: #0396FF solid 0.1875rem;
}
/**
 * Card Grid Carousel
 */
.cardGrid .carousel__button {
  padding: 0.75rem 0.625rem;
}
.cardGrid .carousel__button svg {
  width: 2.5rem;
  height: 1.25rem;
}
.cardGrid .carousel__button:focus svg {
  fill: #C60223;
}
/**
 * Featured Events Carousel
 */
.featuredEvents .carousel__button {
  padding: 0.75rem 0.625rem;
}
.featuredEvents .carousel__button svg {
  width: 2.5rem;
  height: 1.25rem;
}
.featuredEvents .carousel__button:focus svg {
  fill: #C60223;
}
/**
 * Simple Cards Carousel
 */
.simpleCards .carousel {
  padding-left: 60px;
  padding-right: 60px;
}
.simpleCards .carousel .carousel__slide {
  width: calc(80%) !important;
  padding-left: 12px;
  padding-right: 12px;
  transition: all 0.3s;
}
@media all and (min-width: 48em) {
  .simpleCards .carousel .carousel__slide {
    width: calc(45%) !important;
  }
}
@media all and (min-width: 60em) {
  .simpleCards .carousel .carousel__slide {
    width: calc(33.3333% - 40px) !important;
  }
}
.simpleCards .carousel .carousel__slide .carousel__slide-container {
  width: 100%;
}
.simpleCards .carousel .carousel__slide .carousel__slide-container:hover {
  cursor: pointer;
}
.simpleCards .carousel .carousel__slide .card-figure {
  display: flex;
  aspect-ratio: 1.5;
  background-color: #E3E0E1;
  transition: all 0.3s;
}
.simpleCards .carousel .carousel__slide .card-figure img {
  -o-object-fit: cover;
     object-fit: cover;
}
.simpleCards .carousel .carousel__slide .card-info {
  display: grid;
  gap: 16px;
  margin-top: 16px;
}
.simpleCards .carousel .carousel__slide .card-header {
  opacity: 0;
  transition: all 0.3s;
}
.simpleCards .carousel .carousel__slide .card-title {
  text-decoration: none;
}
.simpleCards .carousel .carousel__slide .card-content {
  display: grid;
  gap: 24px;
  opacity: 0;
  transition: all 0.3s;
}
.simpleCards .carousel .carousel__slide .card-description {
  width: 75%;
}
.simpleCards .carousel .carousel__slide .card-cta a {
  margin: 0;
}
.simpleCards .carousel .carousel__slide.is-current {
  width: calc(80%) !important;
  transition: all 0.3s;
}
@media all and (min-width: 48em) {
  .simpleCards .carousel .carousel__slide.is-current {
    width: calc(45%) !important;
  }
}
@media all and (min-width: 60em) {
  .simpleCards .carousel .carousel__slide.is-current {
    width: calc(33.3333% + 40px) !important;
    margin-top: -30px;
  }
}
.simpleCards .carousel .carousel__slide.is-current .carousel__slide-container {
  width: 100%;
}
.simpleCards .carousel .carousel__slide.is-current .card-figure {
  transition: all 0.3s;
}
.simpleCards .carousel .carousel__slide.is-current .card-header {
  opacity: 1;
}
.simpleCards .carousel .carousel__slide.is-current .card-title {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-decoration-color: #C60223;
  text-decoration-color: var(--brand-2);
  text-underline-offset: 3px;
}
.simpleCards .carousel .carousel__slide.is-current + .carousel__slide .card-header {
  opacity: 1;
}
.simpleCards .carousel .carousel__slide.is-current + .carousel__slide + .carousel__slide .card-figure img {
  opacity: 1;
  transition: all 0.3s;
}
.simpleCards .carousel .carousel__slide.is-current + .carousel__slide + .carousel__slide .card-header {
  opacity: 1;
}
.simpleCards .carousel .carousel__slide.is-current .card-content {
  opacity: 1;
}
.simpleCards .carousel__button {
  position: absolute;
  top: 12%;
  margin: 0;
  padding: 0;
  z-index: 1;
}
@media all and (min-width: 48em) {
  .simpleCards .carousel__button {
    top: 12%;
  }
}
@media all and (min-width: 60em) {
  .simpleCards .carousel__button {
    top: 21%;
  }
}
.simpleCards .carousel__button svg {
  width: 62px;
  height: 62px;
}
.simpleCards .carousel__button[data-direction="prev"] {
  left: -20px;
  transform: scaleX(-1);
}
.simpleCards .carousel__button[data-direction="next"] {
  right: -20px;
  transform: scaleX(1);
}
/**
 * Media Carousel
 */
.imageCarousel .carousel__slide-caption {
  width: 80%;
}
.imageCarousel .carousel__button {
  position: absolute;
  top: 25%;
  margin: 0;
  padding: 0;
  z-index: 1;
}
@media all and (min-width: 48em) {
  .imageCarousel .carousel__button {
    top: 30%;
  }
}
.imageCarousel .carousel__button svg {
  width: 62px;
  height: 62px;
}
.imageCarousel .carousel__button[data-direction="prev"] {
  left: 20px;
  transform: scaleX(-1);
}
@media all and (min-width: 60em) {
  .imageCarousel .carousel__button[data-direction="prev"] {
    left: 40px;
  }
}
.imageCarousel .carousel__button[data-direction="next"] {
  right: 20px;
  transform: scaleX(1);
}
@media all and (min-width: 60em) {
  .imageCarousel .carousel__button[data-direction="next"] {
    right: 40px;
  }
}
/**
 * Header Carousel
 */
@media all and (min-width: 115.875em) {
  .ticketdfw .headerCarousel .headerCarousel__inner {
    padding: 0 72px;
    max-width: 99999px;
    width: auto;
  }
}
.headerCarousel .carousel__has-slides .carousel__slide {
  padding-left: 62px;
  padding-right: 62px;
}
.ticketdfw .headerCarousel .carousel__has-slides .carousel__slide {
  padding-left: 80px;
  padding-right: 80px;
}
@media all and (min-width: 115.875em) {
  .ticketdfw .headerCarousel .carousel__has-slides .carousel__slide {
    padding-left: 102px;
    padding-right: 102px;
  }
}
.headerCarousel .carousel__button {
  width: 62px;
  height: 62px;
  position: absolute;
  top: 50%;
  margin: 0;
  padding: 0;
  z-index: 1;
}
.headerCarousel .carousel__button svg {
  width: 62px;
  height: 62px;
}
.headerCarousel .carousel__button[data-direction="prev"] {
  left: 0;
  transform: scaleX(-1) translateY(-50%);
}
.ticketdfw .headerCarousel .carousel__button[data-direction="prev"] {
  left: 5px;
}
@media all and (min-width: 60em) {
  .headerCarousel .carousel__button[data-direction="prev"] {
    left: 0;
  }
  .ticketdfw .headerCarousel .carousel__button[data-direction="prev"] {
    left: 5px;
  }
}
.headerCarousel .carousel__button[data-direction="next"] {
  right: 0;
  transform: scaleX(1) translateY(-50%);
}
.ticketdfw .headerCarousel .carousel__button[data-direction="next"] {
  right: 5px;
}
@media all and (min-width: 60em) {
  .headerCarousel .carousel__button[data-direction="next"] {
    right: 0;
  }
  .ticketdfw .headerCarousel .carousel__button[data-direction="next"] {
    right: 5px;
  }
}
/**
 * Shared
 */
@media all and (max-width: 47.9375em) {
  .globalHeader {
    min-height: 4.5rem;
  }
}
@media all and (min-width: 48em) {
  .globalHeader {
    width: 130px;
    height: 100vh;
    position: sticky;
    top: 0;
    transition: height 250ms ease-in-out;
    border-right: 0.0625rem solid #E3E0E1;
    z-index: 100;
    padding-bottom: calc(20px + 0);
    padding-bottom: calc(20px + var(--brandbar-height));
    background: white;
  }
  .globalHeader.is-sticky {
    height: 100vh;
  }
}
.globalHeader__wrapper {
  padding-left: 15px;
  padding-right: 15px;
}
@media all and (max-width: 47.9375em) {
  .globalHeader__wrapper {
    background: transparent;
  }
}
@media all and (min-width: 48em) {
  .globalHeader__wrapper {
    height: 100%;
  }
  .globalHeader__controls {
    flex-direction: column;
    height: 100%;
  }
}
@media all and (max-width: 47.9375em) {
  .globalHeader__controls-button {
    order: 2;
  }
  .globalHeader__controls-button .menu-close {
    color: #fff;
  }
  .globalHeader__controls-button .menu-close svg {
    fill: #fff;
  }
  .globalHeader__controls-logo {
    order: 1;
  }
  .globalHeader__controls-quicklinks {
    display: none;
  }
}
.globalHeader__logo-img--desktop {
  display: none;
}
@media all and (min-width: 48em) {
  .globalHeader__logo-img--desktop {
    display: block;
  }
}
.globalHeader__logo-img--mobile {
  display: block;
  width: 85%;
  height: 100%;
}
@media all and (min-width: 48em) {
  .globalHeader__logo-img--mobile {
    display: none;
  }
}
.navigation {
  position: absolute;
  transform: translateX(-100%);
  transition: transform 0.3s ease-in-out;
}
@media all and (max-width: 47.9375em) {
  .navigation {
    overflow: hidden;
  }
  .navigation.is-revealed {
    top: 0;
    width: calc(100% - ( 45px + ( 15px * 2 ) ));
    height: 100vh;
    z-index: 999 !important;
    transform: none;
  }
}
@media all and (min-width: 48em) {
  .navigation {
    inset: 0 0 0 0;
    inset: var(--brandbar-height) 0 0 0;
    margin-left: 130px;
    width: 25vw;
  }
  .navigation.is-revealed {
    transform: translateX(0);
  }
}
#navigation-open .menu-open {
  display: block;
}
#navigation-open .menu-close {
  display: none;
}
#navigation-open.is-revealed .menu-open {
  display: none;
}
#navigation-open.is-revealed .menu-close {
  display: block;
}
.navigation__overlay {
  position: fixed;
  inset: 0 0 0 0;
  inset: var(--brandbar-height) 0 0 0;
  background: transparent;
  z-index: 99;
  pointer-events: none;
}
@media all and (min-width: 48em) {
  .navigation__overlay {
    transition: background 200ms ease;
    transition-delay: 300ms;
  }
}
.navigation__overlay.is-revealed {
  background: rgba(35, 31, 32, 0.7);
  pointer-events: auto;
}
.navigation__a11ybar {
  display: none;
  height: 0;
  overflow: hidden;
}
.navigation__a11ybar:focus-within {
  height: auto;
}
.navigation__wrapper {
  padding-left: 36px;
  padding-right: 36px;
}
@media all and (min-width: 48em) {
  .navigation__wrapper {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.navigation__primary {
  height: 100vh;
}
@media all and (max-width: 47.9375em) {
  .navigation__primary {
    transform: none;
    transition: transform 0.3s ease-in-out;
  }
  .nav-open .navigation__primary {
    transform: translateX(-100%);
  }
}
@media all and (min-width: 48em) {
  .navigation__primary {
    width: 25vw;
    height: 100%;
  }
}
.navigation__primary-link {
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
.navigation__primary-link:hover,
.navigation__primary-link:focus {
  color: #C60223;
  color: var(--brand-2);
  text-decoration-color: #C60223;
  text-decoration-color: var(--brand-2);
}
.navigation__primary-link:focus {
  outline: #0396FF solid 0.1875rem;
  outline-offset: 3px;
}
.navigation__primary-item .navigation__link {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.5;
  width: 100%;
  height: 100%;
  padding: 0.9375rem 0px;
}
.navigation__primary-item .navigation__link:hover,
.navigation__primary-item .navigation__link:focus {
  color: #C60223;
  color: var(--brand-2);
}
.navigation__search-submit {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  line-height: 0;
}
.navigation__search-submit svg {
  width: 20px;
  height: 20px;
  cursor: pointer;
}
.navigation__search-label {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.navigation__search-field:focus + .navigation__search-label,
.navigation__search-field.isnt-empty + .navigation__search-label {
  display: none;
}
.navigation__search-field {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border-style: solid;
  border-width: 0 0 1px 0;
  border-color: #505050;
  padding: 5px 10px;
}
.navigation__search-field:focus {
  box-shadow: 0 0 0 2px #C60223;
  box-shadow: 0 0 0 2px var(--brand-2);
  border-color: transparent;
}
.navigation__sub {
  margin: 0;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: #E3E0E1;
  transform: translateX(100%);
  z-index: -1;
}
@media all and (max-width: 47.9375em) {
  .is-hovering .navigation__sub,
  .navigation__sub.is-revealed {
    z-index: 1;
  }
}
@media all and (min-width: 48em) {
  .navigation__sub {
    left: 25vw;
    max-width: 20vw;
    transform: translateX(-100%);
    transition: transform 0.3s ease-in-out 0.2s;
  }
  .is-hovering .navigation__sub,
  .navigation__sub.is-revealed {
    transform: translateX(0);
  }
}
.navigation__sub li a {
  color: #231F20;
  padding: 0.625rem 0px;
}
.navigation__sub li a:hover {
  text-decoration: underline;
}
.navigation__back button {
  display: flex;
  padding: 0;
  font-family: "Plus Jakarta Sans", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
}
.navigation__back button:before {
  content: '';
  width: 8px;
  height: 8px;
  border-style: solid;
  border-color: #231F20;
  border-width: 1px 0 0 1px;
  transform: rotate(-45deg);
}
@media all and (min-width: 48em) {
  .navigation__back {
    display: none;
  }
  .navigation__back button {
    display: none;
  }
}
.navigation__a11y:not(:focus) {
  opacity: 0;
  pointer-events: none;
}
.footer__logo {
  width: 275px;
}
.footer__sponsor-logo {
  width: 100px;
  height: 62px;
}
.gridlines {
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: stretch;
  pointer-events: none;
}
.gridlines:not(.is-revealed) {
  display: none;
}
.gridlines__line {
  display: block;
  width: 100%;
  position: relative;
  background: rgba(31, 117, 174, 0.25);
  border: 0.0625rem solid #1F75AE;
  border-width: 0px 0.0625rem;
  pointer-events: none;
}
.gridlines__line:before {
  content: attr(data-count);
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, 0.625rem);
  color: #1F75AE;
}
.gridlines__row {
  display: flex;
  align-items: stretch;
  height: 100%;
  pointer-events: none;
}
@media all and (max-width: 59.9375em) {
  .gridlines__lg {
    display: none;
  }
}
@media all and (max-width: 47.9375em) {
  .gridlines__med {
    display: none;
  }
}
@media all and (min-width: 60em) {
  .gridlines__med {
    display: none;
  }
}
@media all and (min-width: 48em) {
  .gridlines__sm {
    display: none;
  }
}
.gridlines__col {
  display: flex !important;
  align-items: stretch;
  pointer-events: none;
}
@media all and (min-width: 48em) {
  #main {
    width: calc(100% - 130px);
  }
}
.columnedContent__container p {
  white-space: pre-wrap;
  overflow-wrap: break-word;
}
[data-image-align="left"] .headerSimple .header__info {
  padding-right: 4%;
  padding-left: 2.625rem;
}
@media all and (min-width: 48em) {
  [data-image-align="left"] .headerSimple .header__info {
    order: 2;
  }
}
@media all and (min-width: 93.53287012292891em) {
  [data-image-align="left"] .headerSimple .header__info {
    padding-right: calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
@media all and (min-width: 48em) {
  [data-image-align="left"] .headerSimple .header__figure {
    order: 1;
  }
}
.headerSimple[data-has-image="true"] .headerSimple__outline {
  top: 0;
}
.headerSimple[data-has-image="true"][data-has-breadcrumbs="true"] .headerSimple__outline {
  top: 32px;
}
.headerSimple[data-has-image="false"] .headerSimple__outline {
  top: 80px;
}
.headerSimple[data-has-image="false"][data-title-only="true"] .headerSimple__outline {
  top: 44px;
}
.headerSimple[data-has-image="false"][data-title-only="true"][data-has-breadcrumbs="true"] .headerSimple__outline {
  top: 96px;
}
.headerSimple__outline {
  display: none;
  position: absolute;
  right: 0;
  width: 0;
  overflow: hidden;
  z-index: 0;
}
@media all and (min-width: 60em) {
  .headerSimple__outline {
    display: block;
    width: 50%;
  }
}
.headerSimple__outline .headerSimple__outlined-text {
  font-family: "GT America", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  color: transparent;
  -webkit-text-stroke-width: 0.0625rem;
  -moz-text-stroke-width: 0.0625rem;
  -webkit-text-stroke-color: #C60223;
  -webkit-text-stroke-color: var(--brand-2);
  -moz-text-stroke-color: #C60223;
  -moz-text-stroke-color: var(--brand-2);
  font-size: 0;
  line-height: 1.2;
  white-space: nowrap;
}
@media all and (min-width: 60em) {
  .headerSimple__outline .headerSimple__outlined-text {
    font-size: 7rem;
  }
}
.eventHeading__slider .carousel__controls .carousel__button {
  width: 62px;
  height: 62px;
  padding: 0;
  border: none;
  background: none;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s;
}
.eventHeading__slider .carousel__controls .carousel__button svg {
  width: 100%;
  height: 100%;
}
.eventHeading__slider .carousel__controls .carousel__button.carousel__button-active {
  opacity: 1;
  visibility: visible;
}
.eventHeading__slider .carousel__slides {
  gap: 16px;
}
.eventHeading__slider .carousel__slide {
  max-width: calc(100% - 25%);
}
.eventHeading__slider .carousel__image,
.eventHeading__slider .carousel__video {
  width: 100%;
  height: 100%;
}
.eventHeading__slider .carousel__figure {
  width: 100%;
  height: 100%;
  aspect-ratio: 1.77777778;
}
.eventHeading__slider .carousel__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.eventHeading__slider .carousel__iframe {
  width: 100%;
  height: 100%;
}
@media all and (min-width: 60em) {
}
@media all and (min-width: 93.53287012292891em) {
}
@media all and (min-width: 60em) {
}
.missionStatement__figure .missionStatement__figure-header,
.missionStatement__figure img {
  width: 95%;
  position: relative;
}
@media all and (min-width: 48em) {
  .missionStatement__figure .missionStatement__figure-header,
  .missionStatement__figure img {
    width: 75%;
    position: absolute;
  }
}
.missionStatement__figure .missionStatement__figure-header {
  height: 100%;
}
@media all and (min-width: 48em) {
  .missionStatement__figure .missionStatement__figure-header {
    top: 0;
    left: 0;
    height: 75%;
  }
}
.missionStatement__figure img {
  margin-top: -25%;
  margin-left: auto;
  aspect-ratio: 1.5;
}
@media all and (min-width: 48em) {
  .missionStatement__figure img {
    bottom: 0;
    right: 0;
    margin: 0;
    aspect-ratio: 1.77777778;
  }
}
@media all and (min-width: 60em) {
}
.flatpickr-calendar {
  background: transparent;
  box-shadow: none;
  font-family: "Plus Jakarta Sans", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
}
.flatpickr-calendar.inline {
  clear: both;
}
.flatpickr-clear-calendar {
  float: right;
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
  background: #C60223;
  background: var(--brand-2);
  border-color: #C60223;
  border-color: var(--brand-2);
}
.flatpickr-day.selected .cal-event.busy,
.flatpickr-day.startRange .cal-event.busy,
.flatpickr-day.endRange .cal-event.busy,
.flatpickr-day.selected.inRange .cal-event.busy,
.flatpickr-day.startRange.inRange .cal-event.busy,
.flatpickr-day.endRange.inRange .cal-event.busy,
.flatpickr-day.selected:focus .cal-event.busy,
.flatpickr-day.startRange:focus .cal-event.busy,
.flatpickr-day.endRange:focus .cal-event.busy,
.flatpickr-day.selected:hover .cal-event.busy,
.flatpickr-day.startRange:hover .cal-event.busy,
.flatpickr-day.endRange:hover .cal-event.busy,
.flatpickr-day.selected.prevMonthDay .cal-event.busy,
.flatpickr-day.startRange.prevMonthDay .cal-event.busy,
.flatpickr-day.endRange.prevMonthDay .cal-event.busy,
.flatpickr-day.selected.nextMonthDay .cal-event.busy,
.flatpickr-day.startRange.nextMonthDay .cal-event.busy,
.flatpickr-day.endRange.nextMonthDay .cal-event.busy {
  background: #fff;
}
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
  box-shadow: -10px 0 0 #C60223;
  box-shadow: -10px 0 0 var(--brand-2);
}
.flatpickr-day.today {
  border-color: #C60223;
  border-color: var(--brand-2);
}
.flatpickr-day.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange,
.flatpickr-day.today.inRange,
.flatpickr-day.prevMonthDay.today.inRange,
.flatpickr-day.nextMonthDay.today.inRange,
.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover,
.flatpickr-day:focus,
.flatpickr-day.prevMonthDay:focus,
.flatpickr-day.nextMonthDay:focus {
  box-shadow: 0px 0 0 #F1EFF0, 0px 0 0 #F1EFF0;
  background: #F1EFF0;
  border-color: #F1EFF0;
}
.flatpickr-current-month {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 1.27272727;
}
.flatpickr-weekday {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.25;
  text-transform: uppercase;
  color: #231F20 !important;
}
.ticketsCTA {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: calc(100% - 112px);
  background: white;
  box-shadow: 3px 8px 17px #00000029;
  z-index: 101;
}
.ticketsCTA.open {
  display: flex;
}
@media all and (min-width: 48em) {
  .ticketsCTA {
    display: block;
    position: relative;
    width: auto;
    height: auto;
    background-color: #231F20;
    background-color: var(--theme-secondary);
    box-shadow: none;
    z-index: 0;
  }
}
.ticketsCTA__title {
  color: #231F20;
}
@media all and (min-width: 48em) {
  .ticketsCTA__title {
    color: #fff;
  }
  .ticketsCTA__options-container {
    max-width: 55%;
  }
}
@media all and (min-width: 60em) {
  .ticketsCTA__options-container {
    max-width: 49%;
  }
}
.single-external .ticketsCTA__options-container {
  display: none;
}
.ticketsCTA__option {
  max-width: 160px;
  cursor: pointer;
}
.ticketsCTA__option .ticket-choice-info {
  gap: 20px;
  line-height: 1.125rem;
}
.ticketsCTA__option .ticket-choice-text {
  font-size: 0.625rem;
}
input[name="ticket-choice"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: transparent;
  /* For iOS < 15 to remove gradient background */
  margin: 0px;
  /* Not removed via appearance */
  cursor: pointer;
}
input[name="ticket-choice"]:not(:disabled) ~ label {
  cursor: pointer;
}
input[name="ticket-choice"]:disabled {
  cursor: not-allowed;
}
input[name="ticket-choice"]:disabled ~ label {
  cursor: not-allowed;
  background-color: #C0C0C0;
  border-color: #C0C0C0;
}
@media all and (min-width: 48em) {
  input[name="ticket-choice"]:disabled ~ label {
    border-color: #C0C0C0;
  }
}
input[name="ticket-choice"]:disabled ~ label .ticket-choice-date,
input[name="ticket-choice"]:disabled ~ label .ticket-choice-time {
  color: #707170;
  text-decoration: line-through;
}
input[name="ticket-choice"]:disabled ~ label .ticket-choice-sold-out {
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: 0.625rem;
}
input[name="ticket-choice"] + label {
  position: relative;
  display: block;
  height: auto;
  background: #fff;
  padding: 0.5rem;
  border: 3px solid;
  border-color: #231F20;
  transition: all 0.3s;
}
input[name="ticket-choice"] + label.is-selected {
  color: #C60223;
  color: var(--brand-2);
  border-color: #C60223;
  border-color: var(--brand-2);
}
@media all and (min-width: 48em) {
  input[name="ticket-choice"] + label {
    border-color: transparent;
  }
}
input[name="ticket-choice"]:hover + label {
  background: white;
  color: #C60223;
  color: var(--brand-2);
  border-color: #C60223;
  border-color: var(--brand-2);
}
input[name="ticket-choice"]:hover:checked + label {
  background: white;
  color: #C60223;
  color: var(--brand-2);
  border-color: #C60223;
  border-color: var(--brand-2);
}
@media all and (min-width: 48em) {
  input[name="ticket-choice"]:checked + label {
    border-color: #C60223;
    border-color: var(--brand-2);
    color: #C60223;
    color: var(--brand-2);
  }
}
input[name="ticket-choice"]:checked + label .ticket-choice-selected {
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -10px;
  right: 0;
  transform: translateX(10px);
  height: 1.375rem;
  width: 1.375rem;
  background: #C60223;
  background: var(--brand-2);
  border-radius: 50%;
  border: 0.125rem solid #fff;
}
input[name="ticket-choice"]:checked + label .ticket-choice-selected .checkmark {
  display: inline-flex;
  transform: rotate(45deg);
  height: 10px;
  width: 5px;
  border-bottom: 2px solid white;
  border-right: 2px solid white;
}
input[name="ticket-choice"]:focus + label {
  outline: #0396FF solid 0.1875rem;
}
.ticketsCTA__buy-container {
  display: none;
  border-top: 0.0625rem solid #fff;
  padding-top: 2.5rem;
  width: 100%;
}
@media all and (min-width: 48em) {
  .ticketsCTA__buy-container {
    display: block;
    border-top: none;
    padding-top: 0px;
    border-left: 0.0625rem solid #fff;
    padding-left: 2.5rem;
    width: auto;
  }
  .single-external .ticketsCTA__buy-container {
    border-left: none;
    padding-left: 0;
  }
}
.ticketsCTA__buy-container .ticketsCTA__main-cta:hover {
  background: #fff;
  color: #C60223;
  color: var(--brand-2);
  transition: all 0.3s;
}
.ticketsCTA__main-cta {
  margin: 0;
  padding: 16px 32px;
  border: 3px solid #C60223;
  border: 3px solid var(--brand-2);
  background: #C60223;
  background: var(--brand-2);
  color: #fff;
  font-size: 1rem;
  line-height: 1.3125rem;
  font-weight: 800;
  letter-spacing: 0.05rem;
}
.ticketsCTA__main-cta.disabled {
  cursor: not-allowed;
  pointer-events: none;
  background-color: #C0C0C0;
  color: #707170;
  border-color: #C0C0C0;
}
.sticky-ticketsCTA {
  display: block;
  box-shadow: 3px -8px 17px #00000029;
}
@media all and (min-width: 48em) {
  .sticky-ticketsCTA {
    display: none;
  }
}
.sticky-ticketsCTA .ticketsCTA__main-cta {
  position: relative;
  padding: 8px;
  background: white;
  color: #C60223;
  color: var(--brand-2);
}
.sticky-ticketsCTA .ticketsCTA__main-cta:hover {
  background: white;
  color: #C60223;
  color: var(--brand-2);
}
.sticky-ticketsCTA .ticketsCTA__main-cta.open {
  background: #C60223;
  background: var(--brand-2);
  color: white;
}
.sticky-ticketsCTA .ticketsCTA__main-cta.open .ticket-choice-selected {
  display: none;
}
.sticky-ticketsCTA .ticketsCTA__main-cta.open svg {
  transform: rotate(-90deg);
  transition: all 0.3s;
}
.sticky-ticketsCTA .ticketsCTA__main-cta.sticky-buy-ticket {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #C60223;
  background: var(--brand-2);
  color: white;
}
.sticky-ticketsCTA .ticketsCTA__main-cta svg {
  position: absolute;
  top: 12px;
  right: 8px;
  transform: rotate(90deg);
  transition: all 0.3s;
}
.sticky-ticketsCTA .ticketsCTA__main-cta .ticket-choice-selected {
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -10px;
  right: 0;
  transform: translateX(10px);
  height: 1.375rem;
  width: 1.375rem;
  background: #C60223;
  border-radius: 50%;
  border: 0.125rem solid #fff;
}
.sticky-ticketsCTA .ticketsCTA__main-cta .ticket-choice-selected .checkmark {
  display: inline-flex;
  transform: rotate(45deg);
  height: 10px;
  width: 5px;
  border-bottom: 2px solid white;
  border-right: 2px solid white;
}
.sticky-ticketsCTA .ticketsCTA__main-cta.disabled {
  cursor: not-allowed;
  pointer-events: none;
  background-color: #C0C0C0;
  color: #707170;
  border-color: #C0C0C0;
}
.sticky-ticketsCTA-options {
  flex-direction: column;
  justify-content: space-between;
}
.sticky-ticketsCTA-options .sticky-ticketsCTA-options-btn {
  display: block;
}
@media all and (min-width: 48em) {
  .sticky-ticketsCTA-options .sticky-ticketsCTA-options-btn {
    display: none;
  }
}
.imageText__columns[data-align-img="left"] .imageText__figure {
  order: 1;
}
.imageText__columns[data-align-img="left"] .imageText__info {
  order: 2;
}
.imageText__columns[data-align-img="right"] .imageText__figure {
  order: 1;
}
@media all and (min-width: 60em) {
  .imageText__columns[data-align-img="right"] .imageText__figure {
    order: 2;
  }
}
.imageText__columns[data-align-img="right"] .imageText__info {
  order: 2;
}
@media all and (min-width: 60em) {
  .imageText__columns[data-align-img="right"] .imageText__info {
    order: 1;
  }
}
.imageText__text-lockup {
  padding: 3.125rem 4%;
}
@media all and (min-width: 93.53287012292891em) {
  .imageText__text-lockup {
    padding: 3.125rem calc(((100vw - 130px) - 1400px) * 0.5);
  }
}
.newsletter__signup {
  display: none;
}
.newsletter__signup.is-open {
  display: block;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  z-index: 999;
}
.signUpForm__container hr {
  border: none;
  border-top: 0.0625rem solid #E3E0E1;
}
#js-modal-overlay {
  display: none;
}
#js-modal-overlay.is-open {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.9;
  z-index: 998;
}
.headerLarge {
  margin-bottom: 56px;
}
@media all and (min-width: 60em) {
  .headerLarge {
    margin-bottom: 72px;
  }
  .headerLarge .headerLarge-image-main {
    max-width: 80%;
  }
  .headerLarge[data-secondary-image="false"] .headerLarge-image-main {
    max-width: 100%;
  }
}
.headerLarge .headerLarge-figure-main {
  aspect-ratio: 2.25;
}
.headerLarge .headerLarge-figure-main .headerLarge-img-main {
  width: 100%;
  aspect-ratio: 2.25;
  -o-object-fit: cover;
     object-fit: cover;
}
.headerLarge .headerLarge-content {
  order: 3;
  margin-top: 56px;
  margin-left: 16px;
  margin-right: 16px;
}
@media all and (min-width: 60em) {
  .headerLarge .headerLarge-content {
    width: 40%;
    max-width: 500px;
    margin-top: 72px;
    margin-left: 80px;
  }
}
.headerLarge .headerLarge-title {
  margin-top: 0;
  margin-bottom: 32px;
}
.headerLarge .headerLarge-image-small {
  display: none;
  width: 35%;
  order: 2;
  margin-top: -20%;
  margin-left: auto;
}
@media all and (min-width: 60em) {
  .headerLarge .headerLarge-image-small {
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
  }
}
.headerLarge .headerLarge-figure-small {
  aspect-ratio: 0.87804878;
}
.headerLarge .headerLarge-img-small {
  -o-object-fit: cover;
     object-fit: cover;
}
.imageContent .imageContent-container {
  gap: 56px;
}
.imageContent .imageContent-figure {
  aspect-ratio: 0.9;
}
.imageContent .imageContent-img {
  -o-object-fit: cover;
     object-fit: cover;
}
.imageContent[data-content-type="repeater"] .imageContent-header {
  margin-top: 32px;
}
@media all and (min-width: 60em) {
  .imageContent[data-content-type="repeater"] .imageContent-header {
    width: 78%;
    max-width: 500px;
    margin-top: 56px;
  }
}
.imageContent .imageContent-title {
  margin-top: 0;
  margin-bottom: 16px;
}
@media all and (min-width: 60em) {
  .imageContent .imageContent-title {
    margin-bottom: 32px;
  }
}
.imageContent .imageContent-grid {
  -moz-column-gap: 16px;
       column-gap: 16px;
  row-gap: 32px;
}
@media all and (min-width: 60em) {
  .imageContent .imageContent-grid {
    -moz-column-gap: 24px;
         column-gap: 24px;
  }
}
.imageContent .imageContent-card-figure {
  aspect-ratio: 1.08695652;
}
.imageContent .imageContent-card-img {
  -o-object-fit: cover;
     object-fit: cover;
}
.imageContent .imageContent-card-title {
  margin-top: 16px;
}
.simpleCards .simpleCards-header {
  gap: 32px;
  margin-bottom: 72px;
  text-align: center;
}
.simpleCards .simpleCards-title {
  width: 100%;
  margin: 0 auto;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.21428571;
  letter-spacing: 0.0875rem;
  text-transform: uppercase;
}
@media all and (min-width: 48em) {
  .simpleCards .simpleCards-title {
    width: 80%;
  }
}
@media all and (min-width: 60em) {
  .simpleCards .simpleCards-title {
    width: 60%;
    font-size: 44px;
    font-size: 2.75rem;
    line-height: 1.13636364;
    letter-spacing: 0.1375rem;
  }
}
.simpleCards .simpleCards-description {
  width: 100%;
  margin: auto;
}
@media all and (min-width: 48em) {
  .simpleCards .simpleCards-description {
    width: 65%;
  }
}
@media all and (min-width: 60em) {
  .simpleCards .simpleCards-description {
    width: 45%;
  }
}
.simpleCards__outline {
  display: block;
  position: absolute;
  top: -20px;
  right: 0;
  width: 100%;
  overflow: hidden;
  z-index: -1;
}
@media all and (min-width: 60em) {
  .simpleCards__outline {
    top: -64px;
  }
}
.simpleCards__outline .simpleCards__outlined-text {
  font-family: "GT America", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  color: transparent;
  -webkit-text-stroke-width: 0.0625rem;
  -moz-text-stroke-width: 0.0625rem;
  -webkit-text-stroke-color: #F1EFF0;
  -moz-text-stroke-color: #F1EFF0;
  font-size: 7.5rem;
  line-height: 1.2;
  white-space: nowrap;
}
@media all and (min-width: 60em) {
  .simpleCards__outline .simpleCards__outlined-text {
    font-size: 18.75rem;
  }
}
.quickLinks a:hover + figure img {
  transform: scale(1.1);
  transform-origin: center center;
}
.quickLinks a:hover span {
  position: relative;
  transform: translateY(-5px);
}
.quickLinks a span {
  transform: none;
  transition: transform 200ms ease-in-out;
  text-align: center;
}
.quickLinks figure {
  overflow: hidden;
}
.quickLinks img {
  transform: scale(1);
  transition: transform 200ms ease-in-out;
}
.quickLinks__flex {
  gap: 24px;
  margin-top: 24px;
}
.quickLinks__col {
  width: 100%;
}
@media all and (min-width: 48em) and (max-width: 59.9375em) {
  .quickLinks__col {
    width: calc(50% - 1.25rem);
  }
}
@media all and (min-width: 60em) {
  .quickLinks__col {
    width: calc( 33.33333%  - 1.25rem);
  }
}
.quickLinks__link {
  padding: 16px;
}
/**
 * Components
 */
.alert__close {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  color: inherit;
  width: 45px;
  height: 45px;
}
.alert__close svg {
  font-size: 0.9375rem;
}
.alert__close:before {
  content: '';
  position: absolute;
  width: 30px;
  height: 30px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: transparent;
  border-width: 1px;
  border-style: solid;
  border-radius: 50%;
}
.background__alert-neutral .alert__close svg {
  color: #fff;
}
.background__alert-neutral .alert__close:before {
  border-color: #fff;
}
.alert__icon {
  margin-top: 6px;
}
.cardSlider__wrapper {
  display: flex;
  flex-direction: column;
  overflow: visible;
}
@media all and (min-width: 60em) {
  .cardSlider__wrapper {
    flex-direction: row;
  }
}
.cardSlider__wrapper:before {
  content: '';
  position: absolute;
  left: 0;
  top: -20px;
  bottom: -20px;
  width: 100%;
  transform: translateX(-100%);
  background: #231F20;
  z-index: 1;
}
.cardSlider__title-card {
  position: relative;
  width: 100%;
  height: auto;
  padding: 0;
  background: transparent;
}
@media all and (min-width: 60em) {
  .cardSlider__title-card {
    width: 33.33333%;
    padding: 40px;
    background: #C60223;
    background: var(--brand-2);
  }
}
.cardSlider__carousel {
  margin-left: 0;
}
@media all and (min-width: 60em) {
  .cardSlider__carousel {
    width: 66.66667%;
  }
  .cardSlider__card {
    margin-left: 1.25rem !important;
  }
}
.cardSlider .carousel__controls-mobile {
  display: block;
}
@media all and (min-width: 60em) {
  .cardSlider .carousel__controls-mobile {
    display: none;
  }
}
.cardSlider .carousel__controls-desktop {
  display: none;
}
@media all and (min-width: 60em) {
  .cardSlider .carousel__controls-desktop {
    display: block;
  }
}
.cardSlider .carousel__button {
  padding: 0.75rem 0.625rem;
}
.cardSlider .carousel__button svg {
  width: 2.5rem;
  height: 1.25rem;
}
.cardSlider .carousel__button:focus svg {
  fill: #C60223;
  fill: var(--brand-2);
}
.loader__container,
.calendarLoader__container {
  opacity: 0;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.9);
  transition: 0.15s opacity ease-in-out;
  z-index: -1;
}
.loader__container.is-showing,
.calendarLoader__container.is-showing {
  display: block;
  opacity: 1;
  z-index: 200;
}
.loader__container,
.loader__wheel-container {
  position: fixed;
}
.calendarLoader__container,
.calendarLoader__wheel-container {
  position: absolute;
}
.loader__wheel-container,
.calendarLoader__wheel-container {
  top: 50%;
  left: 50%;
  display: flex;
  transform: translate(-50%, -50%);
}
.loader__wheel,
.calendarLoader__wheel {
  width: 80px;
  height: 80px;
  border: 12px solid #E3E0E1;
  border-radius: 50%;
  position: relative;
  transform: rotate(45deg);
  box-sizing: border-box;
}
.loader__wheel:before,
.calendarLoader__wheel:before {
  content: "";
  position: absolute;
  box-sizing: border-box;
  inset: -12px;
  border-radius: 50%;
  border: 12px solid #C60223;
  border: 12px solid var(--brand-2);
  animation: spinner 2s infinite linear;
}
@keyframes spinner {
  0% {
    -webkit-clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
            clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
  }
  25% {
    -webkit-clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
            clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
  }
  50% {
    -webkit-clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
            clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
  }
  75% {
    -webkit-clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
            clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
            clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
  }
}
.navigation-footer__container .newsletterSignup__container {
  max-width: 375px;
}
.navigation-footer__container .newsletterSignup__container .newsletterSignup__intro-text {
  padding-bottom: 1.5rem;
}
.navigation-footer__container .newsletterSignup__container .newsletterSignup__input {
  padding-bottom: 1.5rem;
}
.navigation-footer-newsletter__container .newsletterSignup__container {
  display: block;
}
@media (min-width: 960px) {
  .navigation-footer-newsletter__container .newsletterSignup__container {
    display: flex;
  }
}
.navigation-footer-newsletter__container .newsletterSignup__container .newsletterSignup__intro-text {
  max-width: 375px;
  padding-bottom: 1.5rem;
}
@media (min-width: 960px) {
  .navigation-footer-newsletter__container .newsletterSignup__container .newsletterSignup__intro-text {
    padding-bottom: 0px;
    padding-right: 1.5rem;
  }
  .navigation-footer-newsletter__container .newsletterSignup__container .newsletterSignup__form {
    display: flex;
  }
}
.navigation-footer-newsletter__container .newsletterSignup__container .newsletterSignup__input {
  min-width: 275px;
}
@media (min-width: 960px) {
  .navigation-footer-newsletter__container .newsletterSignup__container .newsletterSignup__input {
    padding-right: 1rem;
  }
}
.tabbed__tab {
  position: relative;
  height: 100%;
  border-style: solid;
  border-width: 2px 2px 0 2px;
  border-color: #fff;
  top: 2px;
  color: #231F20;
}
.tabbed__tab[aria-selected="true"] {
  background: #fff;
  color: #C60223;
  color: var(--brand-2);
}
.tabbed__tab:hover {
  color: #C60223;
  color: var(--brand-2);
}
.tabbed__panel {
  border: 2px solid #fff;
}
/**
 * Pages
 */
.events__header {
  margin-bottom: 32px;
}
.events__header .events__header-figure {
  height: 6.25rem;
}
@media all and (min-width: 48em) {
  .events__header .events__header-figure {
    height: 12.5rem;
  }
}
.events__header .events__header-outline {
  position: absolute;
  top: -20%;
  right: 0;
  width: 90%;
  overflow: hidden;
  z-index: -1;
}
@media all and (min-width: 60em) {
  .events__header .events__header-outline {
    top: -30%;
    width: 50%;
  }
}
.events__header .events__header-outline-text {
  font-family: "GT America", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  color: transparent;
  -webkit-text-stroke-width: 0.0625rem;
  -moz-text-stroke-width: 0.0625rem;
  -webkit-text-stroke-color: #C60223;
  -webkit-text-stroke-color: var(--theme-primary);
  -moz-text-stroke-color: #C60223;
  -moz-text-stroke-color: var(--theme-primary);
  font-size: 4rem;
  line-height: 1.2;
  text-transform: lowercase;
  white-space: nowrap;
}
@media all and (min-width: 60em) {
  .events__header .events__header-outline-text {
    font-size: 7.875rem;
  }
}
.events__header .events__header-title {
  color: #C60223;
  color: var(--theme-primary);
}
.events__views-toggle {
  justify-content: center;
}
.events__views-toggle .events__views-toggle-button {
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.57142857;
  color: #231F20 !important;
  display: flex;
  align-items: center;
  gap: 8px;
}
.events__views-toggle .events__views-toggle-button svg {
  fill: #231F20;
}
.events__views-toggle .events__views-toggle-button.events__views-toggle-current {
  background: #231F20 !important;
  color: #fff !important;
}
.events__views-toggle .events__views-toggle-button.events__views-toggle-current svg {
  fill: #fff;
}
.events__views-toggle .events__views-toggle-button:hover {
  cursor: pointer;
}
@media all and (min-width: 48em) {
  .events__views-toggle {
    justify-content: flex-end;
  }
}
.pseudo-text,
header [data-theme="music"]:after {
  position: absolute;
  top: 0;
  right: 0;
  font-family: "GT America", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  font-size: 7.875rem;
  line-height: 1;
}
header [data-theme="music"] {
  background: #43093F !important;
}
header [data-theme="music"]:after {
  color: #43093F !important;
  content: "Music";
  -webkit-text-stroke: 0.125rem #7E138D;
  color: transparent;
}
@media all and (max-width: 47.9375em) {
  .events__feed-grid .events__feed-container {
    padding-top: 24px;
  }
}
.events__feed-calendar .events__feed-container {
  row-gap: 0;
}
@media all and (min-width: 30em) {
  .events__feed-calendar .events__feed-container {
    row-gap: 48px;
  }
}
@media all and (max-width: 47.9375em) {
  .events__feed-calendar .events__feed-container {
    padding-top: 24px;
  }
}
.events__calendar-view {
  width: 100%;
}
@media all and (min-width: 77.5em) {
  .events__calendar-view {
    width: 72.5%;
  }
}
.events__sidebar {
  width: 100%;
}
@media all and (min-width: 77.5em) {
  .events__sidebar {
    width: 27.5%;
    max-width: 320px;
  }
}
.events__calendar {
  display: none;
  position: sticky;
  top: 0;
}
@media all and (min-width: 48em) {
  .events__calendar {
    display: flex;
  }
}
.flatpickr-selected-date {
  font-size: 0.875rem;
  font-weight: 800;
  color: #C60223;
  color: var(--brand-2);
}
.flatpickr-clear-calendar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: none;
  font-size: 0.75rem;
  border: none;
}
.flatpickr-clear-calendar.presentational__display-none {
  display: none;
}
.flatpickr-day.has-event {
  font-weight: bold;
}
.cal-event {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 150px;
  bottom: 3px;
  left: calc(50% - 1.5px);
  content: " ";
  display: block;
  background: #3d8eb9;
}
.cal-event.busy {
  background: #C60223;
  background: var(--brand-2);
}
.flatpickr-cal {
  min-width: 307px;
  min-height: 296px;
}
.events__filters-main {
  display: none;
  padding-bottom: 24px;
  border-bottom: 1px solid #F1EFF0;
}
@media all and (min-width: 77.5em) {
  .events__filters-main {
    display: block;
  }
}
.events__filters-mobile {
  display: block;
}
@media all and (min-width: 77.5em) {
  .events__filters-mobile {
    display: none;
  }
}
.events__category-btn {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 800;
  color: #231F20 !important;
  padding: 0;
  margin-right: 1.5rem;
  border-bottom: 0.1875rem solid transparent;
}
.events__category-btn.is-active {
  font-weight: 700;
  color: #231F20 !important;
  border-bottom: 0.1875rem solid #C60223;
  border-bottom: 0.1875rem solid var(--brand-2);
}
.events__filter-orgs,
.events__filter-culture {
  position: relative;
}
.events__filter-orgs-btn,
.events__filter-culture-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: none;
  background: none;
  line-height: 1.5;
  font-weight: 700;
}
.events__filter-orgs-btn svg,
.events__filter-culture-btn svg {
  transform: rotate(90deg);
  transition: all 0.3s;
}
.events__filter-orgs-btn.open svg,
.events__filter-culture-btn.open svg {
  transform: rotate(-90deg);
  transition: all 0.3s;
}
.events__filter-orgs-panel,
.events__filter-culture-panel,
.blog__filter-topics-panel {
  position: absolute;
  width: 250px;
  top: 34px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  background: white;
  box-shadow: 0px 0px 17px #00000050;
  z-index: 2;
}
.events__filter-orgs-panel:before,
.events__filter-culture-panel:before,
.blog__filter-topics-panel:before {
  content: "";
  position: absolute;
  bottom: 100%;
  width: 0;
  border-bottom: 10px solid white;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
}
.events__filter-orgs-panel {
  right: 0px;
}
.events__filter-orgs-panel:before {
  right: 50px;
}
.blog__filter-topics-panel {
  left: 0;
}
.blog__filter-topics-panel:before {
  left: 50px;
}
.events__filter-culture-panel {
  left: 0;
}
.events__filter-culture-panel:before {
  left: 50px;
}
.events__filter-org {
  font-size: 0.875rem;
  font-weight: 500;
  color: #231F20;
}
.events__filter-org:hover {
  color: #C60223;
  color: var(--brand-2);
  transition: all 0.3s;
}
.events__filter-org.is-active {
  font-weight: 800;
  color: #C60223;
  color: var(--brand-2);
}
.events__filter-button-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  border-top: 1px solid #E3E0E1;
  border-bottom: 1px solid #E3E0E1;
}
.events__filter-button {
  display: flex;
  align-items: center;
  gap: 8px;
  background: none;
  margin: 0;
  padding: 0;
  border: none;
  font-family: "Plus Jakarta Sans", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  font-weight: 800;
  color: #231F20;
}
.events__filter-button.events__category-button {
  padding-right: 24px;
  border-right: 1px solid #E3E0E1;
}
.events__filter-button.events__category-button span {
  border-bottom: 0.1875rem solid transparent;
}
.events__filter-button.events__category-button.open span {
  border-bottom: 0.1875rem solid #C60223;
  border-bottom: 0.1875rem solid var(--brand-2);
}
.events__filter-button.events__calendar-button svg {
  transform: rotate(90deg);
  transition: all 0.3s;
}
.events__filter-button.events__calendar-button.open svg {
  transform: rotate(-90deg);
  transition: all 0.3s;
}
.events__filter-dropdown {
  border-bottom: 1px solid #E3E0E1;
}
.events__filter-dropdown-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0;
  padding: 16px;
  border: none;
  background: none;
  font-weight: 800;
  color: #231F20;
}
.events__filter-dropdown-button .events__filter-dropdown-button-text {
  display: inline-flex;
  border-bottom: 0.1875rem solid transparent;
  text-align: left;
}
.events__filter-dropdown-button svg {
  transform: rotate(90deg);
  transition: all 0.3s;
}
.events__filter-dropdown-button.open .events__filter-dropdown-button-text {
  border-bottom: 0.1875rem solid #C60223;
  border-bottom: 0.1875rem solid var(--brand-2);
}
.events__filter-dropdown-button.open svg {
  transform: rotate(-90deg);
  transition: all 0.3s;
}
.events__filter-dropdown-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0 16px 16px;
}
.events__filter-link {
  color: #231F20;
}
.events__filter-link.is-active {
  font-weight: 800;
  color: #C60223;
  color: var(--brand-2);
}
.events__calendar-panel {
  border-bottom: 1px solid #E3E0E1;
}
.flatpickr-cal-mobile .flatpickr-calendar {
  margin: auto;
}
[data-view="grid"],
[data-view="calendar"] {
  transition: all 0.3s;
  -webkit-font-smoothing: antialiased;
  -webkit-transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
}
@media all and (min-width: 60em) {
  [data-view="grid"]:hover,
  [data-view="calendar"]:hover {
    transform: scale(1.05);
    transition: all 0.3s;
  }
}
[data-view="grid"] {
  border-top: 14px solid #C60223;
  border-top: 14px solid var(--theme-primary);
}
[data-view="calendar"].event {
  border-top: 0.875rem solid #C60223;
  border-top: 0.875rem solid var(--theme-primary);
}
@media all and (min-width: 60em) {
  [data-view="calendar"].event {
    border: none;
  }
}
@media all and (max-width: 59.9375em) {
  [data-view="calendar"].event {
    box-shadow: 0.1875rem 0.5rem 1.0625rem #00000029;
  }
}
[data-view="calendar"] .event__link-overlay {
  display: block;
}
@media all and (min-width: 60em) {
  [data-view="calendar"] .event__link-overlay {
    display: none;
  }
}
[data-view="calendar"] .event__date {
  display: none;
}
@media all and (min-width: 60em) {
  [data-view="calendar"] .event__date {
    display: block;
    width: 65px;
    padding: 24px 16px;
  }
  [data-view="calendar"] .event__figure {
    width: 50%;
    min-height: 12.6875rem;
    padding-bottom: 1.5rem;
    background: linear-gradient(to right, #F1EFF0 50%, transparent 50%);
    background-repeat: no-repeat;
    background-size: 100%;
  }
  [data-view="calendar"] .event__figure .event__img {
    padding-top: 1.5rem;
    padding-right: 1.5rem;
    background: linear-gradient(to right, transparent 50%, #C60223 50%) top;
    background: linear-gradient(to right, transparent 50%, var(--theme-primary) 50%) top;
  }
}
[data-view="calendar"] .event__figure-no-img {
  background: #C60223;
  background: var(--theme-primary);
}
[data-view="calendar"] .event__info {
  width: 100%;
}
@media all and (min-width: 60em) {
  [data-view="calendar"] .event__info {
    width: 50%;
  }
}
[data-view="calendar"] .event__info .event__info-month,
[data-view="calendar"] .event__info .event__info-day {
  display: inline-block;
}
@media all and (min-width: 60em) {
  [data-view="calendar"] .event__info .event__info-month,
  [data-view="calendar"] .event__info .event__info-day {
    display: none;
  }
}
[data-view="calendar"] .event__link {
  display: none;
}
@media all and (min-width: 60em) {
  [data-view="calendar"] .event__link {
    display: block;
  }
}
.cultureCard .event__heading {
  letter-spacing: 0;
}
/**
 * Event Heading
 */
.eventHeading {
  position: relative;
  background-color: #C60223;
  background-color: var(--theme-primary);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.eventHeading .eventHeader__bg-figure {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.eventHeading .eventHeader__bg-figure:after {
  position: absolute;
  content: '';
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0.65;
}
@media all and (min-width: 48em) {
  .eventHeading .eventHeader__bg-figure:after {
    background: transparent linear-gradient(53deg, #000000 0%, #0000005C 100%) 0% 0% no-repeat padding-box;
    opacity: 0.83;
  }
}
.eventHeading .eventHeading__container-has-bg {
  padding: 100px 0;
}
@media all and (min-width: 48em) {
  .eventHeading .eventHeading__container-has-bg {
    padding-top: 140px;
    padding-bottom: 40px;
  }
}
@media all and (min-width: 93.53287012292891em) {
  .eventHeading .eventHeading__container-has-bg {
    padding-top: 180px;
    padding-bottom: 80px;
  }
}
.eventHeading .eventHeading__outline {
  position: absolute;
  top: 0;
  right: 0;
  width: 70%;
}
@media all and (min-width: 60em) {
  .eventHeading .eventHeading__outline {
    width: 60%;
  }
}
.eventHeading .eventHeading__outline .eventHeading__outline-text {
  font-family: "GT America", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  color: transparent;
  -webkit-text-stroke-width: 0.0625rem;
  -moz-text-stroke-width: 0.0625rem;
  -webkit-text-stroke-color: #231F20;
  -webkit-text-stroke-color: var(--theme-secondary);
  -moz-text-stroke-color: #231F20;
  -moz-text-stroke-color: var(--theme-secondary);
  font-size: 4rem;
  line-height: 1.2;
  white-space: nowrap;
}
@media all and (min-width: 60em) {
  .eventHeading .eventHeading__outline .eventHeading__outline-text {
    font-size: 6.875rem;
    line-height: 0.7;
  }
}
.eventHeading .eventHeading__container {
  margin: auto;
}
.eventHeading .eventHeading__content {
  position: relative;
  padding-left: 16px;
  padding-right: 16px;
}
@media all and (min-width: 60em) {
  .eventHeading .eventHeading__content {
    padding-left: 3.225%;
  }
}
.eventHeading .eventHeading__preheading,
.eventHeading .eventHeading__subheading {
  font-size: 0.875rem;
  line-height: 1.75rem;
  font-weight: bold;
}
.eventHeading .eventHeading__figure {
  height: 11.875rem;
}
@media all and (min-width: 48em) {
  .eventHeading .eventHeading__figure {
    height: auto;
  }
}
.eventHeading .eventHeading__btn {
  font-size: 1rem;
  line-height: 1.3125rem;
  font-weight: 800;
  letter-spacing: 0.05rem;
  color: white;
  padding: 20px 32px;
  border: 3px solid white;
}
.eventHeading .eventHeading__btn:hover {
  background: white;
  color: #231F20;
  transition: all 0.3s;
}
.eventHeading .eventHeading__preheading,
.eventHeading .eventHeading__title,
.eventHeading .eventHeading__subheading,
.eventHeading .eventHeading__short-description,
.eventHeading .eventHeading__dates,
.eventHeading .eventHeading__venue-name a {
  color: white;
}
.eventHeading[data-theme="dance"] .eventHeading__preheading,
.eventHeading[data-theme="dance"] .eventHeading__title,
.eventHeading[data-theme="dance"] .eventHeading__subheading,
.eventHeading[data-theme="dance"] .eventHeading__short-description,
.eventHeading[data-theme="dance"] .eventHeading__dates,
.eventHeading[data-theme="dance"] .eventHeading__venue-name a {
  color: #231F20;
}
.eventHeading[data-theme="dance"] .eventHeading__btn {
  color: #231F20;
  border-color: #231F20;
}
.eventHeading[data-theme="dance"] .eventHeading__btn:hover {
  background: #231F20;
  color: white;
}
/**
 * Event Content
 */
.event-sidebar {
  width: 100%;
  order: 2;
  gap: 40px;
}
@media all and (min-width: 60em) {
  .event-sidebar {
    width: 20%;
    order: 1;
  }
}
.event-cat-btn {
  font-size: 0.75rem;
  line-height: 0.9375rem;
  color: #231F20;
  color: var(--theme-secondary);
  letter-spacing: 0.0375rem;
  padding: 12px 13px;
  border: 2px solid #231F20;
  border: 2px solid var(--theme-secondary);
  transition: all 0.3s;
}
.event-cat-btn:hover {
  background: #231F20;
  background: var(--theme-secondary);
  color: white;
}
.event-venue {
  gap: 16px;
}
.event-venue-location {
  display: flex;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: 800;
}
.event-venue-location svg {
  width: 16px;
  height: 20px;
}
.event-links {
  gap: 16px;
}
.event-social-icons {
  display: flex;
  gap: 8px;
}
.event-social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid #C60223;
  border: 1px solid var(--brand-2);
  border-radius: 50%;
  color: #C60223;
  color: var(--brand-2);
}
.event-social-icon svg {
  width: 20px;
  height: 20px;
}
.event-main {
  width: 100%;
  order: 1;
  gap: 64px;
}
@media all and (min-width: 60em) {
  .event-main {
    width: 60%;
    order: 2;
  }
}
.event-series {
  gap: 32px;
}
.event-series-images {
  gap: 16px;
}
.event-series-image {
  flex: 0 0 calc(33.333% - 16px);
}
.event-series-image figure img {
  width: 100%;
  aspect-ratio: 1.77777778;
  -o-object-fit: cover;
     object-fit: cover;
}
.event-cast {
  gap: 32px;
}
.event-cast-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 16px;
}
@media all and (min-width: 48em) {
  .event-cast-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media all and (min-width: 60em) {
  .event-cast-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.event-cast-card {
  gap: 8px;
}
.event-cast-card-image {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
}
.event-cast-card-image figure img {
  width: 52px;
  height: 52px;
  -o-object-fit: cover;
     object-fit: cover;
}
.event-cast-card-info {
  width: calc(100% - 60px);
  gap: 4px;
}
.event-cast-card-info-role {
  font-size: 0.75rem;
}
.bio__modal {
  display: none;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: 101;
}
.bio__modal .bio-modal__bg {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: rgba(35, 31, 32, 0.5);
}
.bio__modal .bio-modal__container {
  position: relative;
  width: 80%;
  height: 80%;
  max-width: 960px;
  max-height: 800px;
  padding: 48px 40px;
  background: white;
  overflow-y: scroll;
}
@media all and (max-width: 47.9375em) {
  .bio__modal .bio-modal__container {
    padding: 32px;
  }
}
.bio__modal .bio-modal__close {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 20px;
  right: 20px;
  width: 20px;
  height: 20px;
}
.bio__modal .bio-modal__close-btn {
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: none;
}
.bio__modal .bio-modal__close-btn svg {
  width: 20px;
  height: 20px;
}
@media all and (max-width: 47.9375em) {
  .bio__modal .bio-modal__content {
    flex-direction: column;
    gap: 24px;
  }
  .bio__modal .bio-modal__col {
    width: 100%;
  }
}
.bio__modal .bio-modal__image {
  max-width: 200px;
  margin-left: auto;
  margin-right: auto;
}
@media all and (max-width: 47.9375em) {
  .bio__modal .bio-modal__image {
    max-width: 150px;
  }
}
.bio__modal .bio-modal__img {
  margin: auto;
  border-radius: 50%;
  aspect-ratio: 1;
  -o-object-fit: cover;
     object-fit: cover;
}
.bio__modal .bio-modal__role {
  font-size: 0.875rem;
}
.bio__modal .bio-modal__bio p:first-child {
  margin-top: 0;
}
.event-sponsors {
  gap: 32px;
}
.event-sponsors-grid {
  gap: 32px;
}
.event-sponsor-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 200px;
}
.event-sponsor-logo figure {
  display: flex;
  align-items: center;
  justify-content: center;
}
.event-sponsor-logo figure img {
  width: 100%;
}
.cultureCal__figure-logo {
  display: block;
  width: 110px;
  height: 75px;
  margin: 1.25rem auto;
}
@media all and (min-width: 48em) {
  .cultureCal__load-more {
    display: block !important;
    margin-left: auto;
    margin-right: auto;
  }
}
@media all and (min-width: 77.5em) {
  .cultureCal__load-more {
    display: inline-flex !important;
  }
}
.cultureCal .flatpickr-cal {
  margin-left: auto;
  margin-right: auto;
}
@media all and (min-width: 48em) {
  .cultureCal .feed-no-results {
    text-align: center;
  }
}
@media all and (min-width: 77.5em) {
  .cultureCal .feed-no-results {
    text-align: left;
  }
}
.cultureCal .events__calendar {
  margin-bottom: 20px;
}
.homeHero__outline {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  padding: 0 16px;
  overflow: hidden;
  z-index: 1;
}
@media all and (min-width: 60em) {
}
.homeHero__outline .homeHero__outlined-text {
  font-family: "GT America", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  color: transparent;
  -webkit-text-stroke-width: 0.0625rem;
  -moz-text-stroke-width: 0.0625rem;
  -webkit-text-stroke-color: #fff;
  -moz-text-stroke-color: #fff;
  font-size: 4rem;
  line-height: 1.2;
  white-space: nowrap;
}
@media all and (min-width: 60em) {
  .homeHero__outline .homeHero__outlined-text {
    font-size: 8rem;
  }
}
@media all and (min-width: 48em) and (max-height: 63.9375em) {
  .homeHero__primary {
    height: calc(100vh - var(--offset-height));
  }
}
@media all and (min-width: 60em) {
  .homeHero__primary {
    height: calc(75vh - var(--offset-height));
  }
}
.homeHero__secondary {
  height: auto;
}
@media all and (min-width: 60em) {
  .homeHero__secondary {
    height: 25%;
    height: auto;
  }
}
@media all and (min-width: 48em) {
  .homeHero__flex,
  .homeHero__featured {
    height: 100%;
  }
}
@media all and (min-width: 60em) {
}
.homeHero__background:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: transparent linear-gradient(359deg, #000000C2 0%, #0000005C 100%) 0% 0% no-repeat padding-box;
  opacity: 0.83;
  z-index: 0;
}
@media all and (min-width: 48em) {
  .homeHero__background:after {
    background: transparent linear-gradient(281deg, #000000 0%, #00000000 100%) 0% 0% no-repeat padding-box;
    opacity: 0.6;
  }
}
@media all and (min-width: 60em) {
}
@media all and (max-width: 59.9375em) {
}
@media all and (min-width: 60em) {
}
.homeHero__secondary-card.has-link {
  transition: all 0.3s;
}
.homeHero__secondary-card.has-link:hover {
  transform: scale(1.05);
  transition: all 0.3s;
}
@media all and (max-width: 59.9375em) {
  .homeHero__secondary-card {
    box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.33);
  }
}
@media all and (min-width: 60em) {
}
.homeHero__secondary-image {
  width: 100%;
}
@media all and (min-width: 60em) {
  .homeHero__secondary-image {
    width: 60%;
  }
}
@media all and (max-width: 59.9375em) {
  .homeHero__secondary-content {
    padding: 1.25rem 0.75rem;
  }
}
@media all and (min-width: 60em) {
}
.homeHero__secondary-wysiwyg p {
  font-size: 0.875rem;
}
@media all and (min-width: 60em) {
  .homeHero__secondary-wysiwyg p {
    color: white;
  }
}
@media (min-width: 1800px) {
  .homeHero__carousel-wrapper.has-shadows:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    transform: translateX(-85%);
    background: transparent linear-gradient(-270deg, #000000 75%, #00000000 100%) 0% 0% no-repeat padding-box;
    z-index: 1;
  }
}
@media all and (min-width: 60em) {
  .homeHero__carousel-wrapper.has-shadows:after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    transform: translateX(75%);
    background: transparent linear-gradient(270deg, #000000 75%, #00000000 100%) 0% 0% no-repeat padding-box;
    z-index: 1;
  }
}
/* Promo */
.homeHero__promo-container:before {
  content: '';
  position: absolute;
  background: #C60223;
  background: var(--brand-2);
  top: 0;
  left: 0;
  right: 0;
  height: 140px;
}
@media all and (min-width: 60em) {
  .homeHero__promo-container:before {
    bottom: 0;
    right: auto;
    width: 15%;
    height: auto;
  }
}
/* Categories */
.home__categories {
  overflow: hidden;
}
@media all and (max-width: 47.9375em) {
}
@media all and (min-width: 48em) {
  .home__categories-figure {
    width: 75%;
  }
}
@media all and (min-width: 60em) {
  .home__categories-figure {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 320px;
    opacity: 0;
    transition: opacity 300ms ease-in-out;
    z-index: -1;
  }
  .home__categories-link:focus .home__categories-figure,
  .home__categories-link:hover .home__categories-figure {
    opacity: 1;
  }
}
.home__categories-text {
  position: relative;
  line-height: 1;
}
@media all and (max-width: 59.9375em) {
  .home__categories-text {
    transform: none !important;
  }
}
@media all and (min-width: 60em) {
  .home__categories-text {
    transform: translateX(0);
    transition: transform 250ms ease-in-out, color 250ms ease-in-out;
  }
  .home__categories-link:focus .home__categories-text,
  .home__categories-link:hover .home__categories-text {
    color: #C60223;
    color: var(--theme-primary);
  }
  .home__categories-link:hover .home__categories-text {
    transition-delay: 100ms;
  }
  .is-faded .home__categories-text {
    color: #707170;
  }
}
.series__outlined-text {
  font-family: "GT America", Helvetica, Arial, "Arial Unicode", "Lucida Sans Unicode", sans-serif;
  color: transparent;
  -webkit-text-stroke-width: 0.0625rem;
  -moz-text-stroke-width: 0.0625rem;
  -webkit-text-stroke-color: #C60223;
  -webkit-text-stroke-color: var(--theme-primary);
  -moz-text-stroke-color: #C60223;
  -moz-text-stroke-color: var(--theme-primary);
  font-size: 7.875rem;
  line-height: normal;
  margin-bottom: -40px;
}
@media all and (max-width: 47.9375em) {
  .series__outlined-text {
    font-size: 20vw;
    margin-bottom: -20px;
  }
}
.blogCards .carousel .carousel__slide {
  width: calc(80%) !important;
  padding-left: 12px;
  padding-right: 12px;
  transition: all 0.3s;
}
@media all and (min-width: 48em) {
  .blogCards .carousel .carousel__slide {
    width: calc(45%) !important;
  }
}
@media all and (min-width: 60em) {
  .blogCards .carousel .carousel__slide {
    width: calc(33.3333% - 40px) !important;
  }
}
.blogCards .carousel .carousel__slide .carousel__slide-container {
  width: 100%;
}
.blogCards .carousel .carousel__slide .card-figure {
  display: flex;
  aspect-ratio: 1.5;
  background-color: #E3E0E1;
  transition: all 0.3s;
}
.blogCards .carousel .carousel__slide .card-figure img {
  -o-object-fit: cover;
     object-fit: cover;
}
.blogCards .carousel .carousel__slide .card-info {
  display: grid;
}
.blogCards .carousel .carousel__slide .card-title {
  text-decoration: none;
}
.blogCards .carousel .carousel__slide .card-cta a {
  margin: 0;
}
.blogCards .carousel__button {
  position: absolute;
  top: 20%;
  margin: 0;
  padding: 0;
  z-index: 1;
}
@media all and (min-width: 48em) {
  .blogCards .carousel__button {
    top: 20%;
  }
}
@media all and (min-width: 60em) {
  .blogCards .carousel__button {
    top: 20%;
  }
}
.blogCards .carousel__button svg {
  width: 62px;
  height: 62px;
}
.blogCards .carousel__button[data-direction="prev"] {
  left: -20px;
  transform: scaleX(-1);
}
.blogCards .carousel__button[data-direction="next"] {
  right: -20px;
  transform: scaleX(1);
}
.cat-bar {
  padding: 32px 16px;
}
.cat-bar-container {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  row-gap: 20px;
  -moz-column-gap: 40px;
       column-gap: 40px;
}
.cat-bar-list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.cat-bar-cat {
  display: inline-flex;
}
.feed-container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 80px;
}
.feed-col {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.topics-col {
  gap: 16px;
}
.topics-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.topic {
  display: inline-flex;
  width: -moz-max-content;
  width: max-content;
  background: #F1EFF0;
  font-size: 0.625rem;
  line-height: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.03125rem;
  padding: 10px 16px;
  border-radius: 16px;
}
.feed-col:first-child {
  grid-column: span 4;
}
.feed-col:last-child {
  grid-column: span 4;
}
.feed-col-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
}
.feed-grid {
  display: grid;
  row-gap: 32px;
  -moz-column-gap: 24px;
       column-gap: 24px;
}
.feed-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid;
}
.feed-card .feed-card-image {
  flex: 1 1 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.feed-card .feed-card-figure {
  aspect-ratio: 1.77777778;
}
.feed-card .feed-card-content {
  flex: 1 1 100%;
}
.feed-card .feed-card-date {
  font-size: 0.75rem;
  line-height: 1.375rem;
  font-weight: 800;
  margin-bottom: 8px;
}
.feed-card .feed-card-description {
  margin-top: 16px;
}
.feed-card.featured-card {
  grid-column: span 4;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-bottom: 0;
  border: none;
}
.feed-card.featured-card .feed-card-image {
  flex: 0;
}
.feed-card.featured-card .feed-card-figure {
  aspect-ratio: 1.81818182;
}
.feed-card.featured-card .feed-card-content {
  flex: 0;
  color: #fff;
}
.feed-card.featured-card .feed-card-title {
  color: #fff;
}
.feed-card.featured-card .topic {
  background: #505050;
  color: #F1EFF0;
}
.feed-card.featured-card.featured-card-secondary {
  width: 50%;
  flex-direction: column;
  padding-bottom: 0;
}
.feed-card.featured-card.featured-card-secondary .feed-card-image,
.feed-card.featured-card.featured-card-secondary .feed-card-content {
  flex: none;
  width: 100%;
}
.feed-card.featured-card.featured-card-secondary .feed-card-title,
.feed-card.featured-card.featured-card-secondary .feed-card-content {
  color: #fff;
}
@media (min-width: 960px) {
  .feed-card.featured-card.featured-card-secondary {
    width: 100%;
    flex-direction: row;
  }
  .feed-card.featured-card.featured-card-secondary .feed-card-image,
  .feed-card.featured-card.featured-card-secondary .feed-card-content {
    width: 50%;
  }
}
@media all and (max-width: 47.9375em) {
  .feed-card.featured-card.featured-card-secondary .feed-card-description {
    display: none;
  }
}
@media (min-width: 768px) {
  .feed-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 960px) {
  .feed-grid {
    grid-template-columns: repeat(1, 1fr);
  }
  .feed-col:first-child {
    grid-column: span 3;
  }
  .feed-col:last-child {
    grid-column: span 1;
  }
  .cultureCal .feed-col:last-child {
    grid-column: span 3;
  }
  .feed-card {
    flex-direction: row;
  }
  .feed-card-image {
    flex: 1 0 calc(33% - 16px);
  }
  .feed-card-content {
    flex: 3 0 calc(67% - 16px);
  }
}
@media (min-width: 768px) {
  .featured-card:first-child {
    grid-column: span 4;
  }
  .featured-card:not(:first-child) {
    grid-column: span 2;
  }
}
@media (min-width: 960px) {
  .featured-card:first-child {
    grid-column: span 2;
  }
  .featured-card:not(:first-child) {
    grid-column: span 1;
  }
}
/**
 * Print
 */
@media print {
  * {
    background: transparent !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  html {
    font: 12pt/1.5em Georgia, "Times New Roman", Times, serif;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-weight: bold;
    line-height: 1.1em;
    margin-bottom: 0.5em;
    margin-top: 1em;
    page-break-after: avoid;
    orphans: 3;
    widows: 3;
  }
  li h1,
  li h2,
  li h3,
  li h4,
  li h5,
  li h6 {
    margin-top: 0;
  }
  h1 {
    font-size: 24pt;
  }
  h2 {
    font-size: 21pt;
  }
  h3 {
    font-size: 18pt;
  }
  h4 {
    font-size: 16pt;
  }
  h5 {
    font-size: 14pt;
  }
  h6 {
    font-size: 12pt;
  }
  blockquote,
  p,
  ul,
  ol,
  dl,
  figure,
  img {
    margin-bottom: 1em;
  }
  figure img {
    margin-bottom: 0;
  }
  ul,
  ol,
  dd {
    margin-left: 3em;
  }
  pre,
  blockquote {
    border-left: 0.5em solid #999;
    padding-left: 1.5em;
    page-break-inside: avoid;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: "";
  }
  figcaption {
    text-transform: uppercase;
    font-size: 10pt;
  }
  strong {
    font-weight: bold;
  }
  em {
    font-style: italic;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  form,
  video,
  nav {
    display: none !important;
  }
  @page {
    margin: 2cm;
  }
}
/**
 * Tailwind
 */

