/* Global styles */
:root {
  --sans-serif: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --serif: Georgia, 'Times New Roman', Times, serif;
  --extralight: 200;
  --light: 300;
  --medium: 500;
  --semibold: 600;
  --color-black: #0a0a0a;
  --color-white: #fefefe;
}

::placeholder { color: darkgray; opacity: 1; }
::-ms-input-placeholder { color: darkgray; opacity: 1; }
::-webkit-input-placeholder { color: darkgray; opacity: 1; }
* { -webkit-overflow-scrolling: touch; }

a:not([href]) { color: inherit; cursor: inherit; text-decoration: inherit; }
a.skiplink { background: var(--color-black); color: var(--color-white); font-size: 16px; font-weight: 600; left: 0; opacity: 1; padding: 12px 16px; position: fixed; text-shadow: 2px 1px 3px rgba(0,0,0,1); top: -1000px; z-index: 10000; }
a.skiplink:focus { top: 0; }
/* hr { background: #0a0a0a; border: 0; clear: both; display: block; height: 0.0625rem; margin: 2.625rem 0; } */
iframe { border: 0.0625rem solid #554832; display: block; margin: 1rem auto; max-width: 100%; }
/* img:is(.float-left, .float-right) { max-width: 30vw; } */

.callout>*:nth-last-child(2) { margin-bottom: 0; }
.callout .button { margin: 0; }
.clearfix::after, .clearfix::before { content: ''; display: table; }
.clearfix::after { clear: both; }
.float-group { margin: 1.5rem auto; }
.float-group::after { clear: both; content: ''; display: table; }
.float-left { margin: 10px 24px 10px 0; }
.float-right { margin: 10px 0 10px 24px; }
.hide-display { height: 0; opacity: 0; overflow: hidden; position: absolute; white-space: nowrap; width: 0; }
.icons, .popover { display: none !important; }
.nopad { padding: 0 !important; }
.radius, .rounded { border-radius: 0.313rem; }
.reverse-deco { text-decoration: none; }
.reverse-deco:focus, .reverse-deco:hover { text-decoration: underline; }
.semibold { font-weight: var(--semibold); }
.text-black { color: #0a0a0a; }
.text-red { color: #c64a4f; }
.text-lower { text-transform: lowercase; }
.text-title { text-transform: capitalize; }
.text-upper { text-transform: uppercase; }
/* [aria-hidden="true"] { visibility: hidden !important; } */
.rc-anchor-invisible-text .rc-anchor-pt a:link { display: inline !important; }
/* .rc-anchor-normal-footer[aria-hidden="true"] { visibility: hidden !important; } */

.system-message-container { font-family: 'Fira Code', 'Courier New', Courier, monospace; font-size: 1rem; line-height: normal; }
.system-message-container .callout { color: #0a0a0a; }
.system-message-header { font-family: 'Open Sans', var(--sans-serif);
  font-size: 2rem; font-weight: bold; line-height: normal; margin: 0 0 1rem; text-transform: uppercase; }
.system-message-container p { line-height: normal; margin: 0.625rem 0; padding: 0 0 0 1.5rem; position: relative; text-indent: 0; }
.system-message-container p::before { color: #0a0a0a; content: '•'; direction: rtl; display: inline-block; font-weight: bold; left: 0;
  margin: 0; position: absolute; text-align: right; top: 0; width: 0.75rem; }
.system-message-container p:last-of-type { margin: 0; }

.visually-hidden, .sr-only, .visually-hidden-focusable:not(:focus):not(:focus-within) { border: 0 !important;
  clip: rect(0, 0, 0, 0) !important; height: 1px !important; margin: -1px !important; overflow: hidden !important;
  padding: 0 !important; position: absolute !important; white-space: nowrap !important; width: 1px !important; }
/* End global styles */

/* Masthead */
.masthead, .masthead-content { position: relative; }
.masthead.home { margin-bottom: 2.5rem; }
.masthead { padding: 1.5rem 0; }
/* The left and right padding here mimics the padding that column classes have */
.masthead-content { font-size: 0; padding: 0 .625rem; }
.masthead-content > * { display: inline-block; font-size: 1rem; vertical-align: bottom; }

.masthead-content > *.logo { margin-right: 10rem; width: 13.25rem; }
.logo p { margin: 0; }

.masthead-content > *.topnavarea { width: calc(100% - 212px - 160px); }
/* End masthead */

/* Navigation */
.mainmenu { font-family: 'Averia Libre Serif', serif; font-weight: bold; text-transform: uppercase; }
.mainmenu .menu a { border: 1px solid #fff; }
/* .mainmenu .menu a:hover { background: inherit; } */
.mainmenu .menu li.active>a { background: inherit; color: #a02025; }
.mainmenu>.menu li.active>a { }
/* .mainmenu .menu > li a:focus, .mainmenu .menu > li a:hover, .dropdown.menu>li.is-active>a { color: #a02025; } */
.dropdown.menu>li.is-dropdown-submenu-parent>a::after { border-color: #a02025 transparent transparent; }
.dropdown.menu>li.is-dropdown-submenu-parent.is-active>a:hover::after { border-color: #fff transparent transparent; }
.mainmenu .is-dropdown-submenu { background: #fff; border: 0; width: 100%; }
.mainmenu .is-dropdown-submenu a { line-height: 1.2; }
.mainmenu>.dropdown.menu>li.is-active>a { border: 1px solid #a02025; }
.mainmenu .menu > li a:focus, .mainmenu .menu > li a:hover, .mainmenu>.dropdown.menu>li.is-active>a:hover,
.mainmenu .submenu a:focus, .mainmenu .submenu a:hover, .mainmenu .submenu .is-active>a,
  .mainmenu .submenu li.active>a { background: #a02025; border-color: #a02025; color: #fff; }
.is-dropdown-submenu .is-dropdown-submenu { margin-top: 0; }
.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after { border-color: transparent transparent transparent #a02025; }
.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right.is-active>a::after { border-color: transparent transparent transparent #fff; }

.donatebtn { background-image: url('../images/ribbon.svg'); background-position: center; background-repeat: no-repeat;
  color: #fff; font-family: 'Averia Libre Serif', serif; font-size: 1.125rem; font-style: italic; font-weight: bold;
  height: 12.1875rem; line-height: calc(20 / 18); position: absolute; right: 1.625rem; text-align: center; top: -0.625rem; width: 9.3125rem; }
.donatebtn a { color: #fff; display: block; height: 100%; padding-top: 45%; text-decoration: none; }
.donatebtn a>span { font-size: 1.625rem; }

.pushy, .pushy > .pushy-main-submenu .pushy-submenu { background: #ba252b; font-weight: normal; }
.pushy li > a { color: #fff; }
.pushy li > a:focus, .pushy li > a:hover { background: #a02025; }
.pushy-main-submenu > li > a:focus, .pushy-main-submenu > li > a:hover { box-shadow: inset -10px 0 6px -9px rgba(0, 0, 0, 0.5); }
.pushy-active { overflow: hidden; }
/* Unset the webkit-perspective property if we use a fixed position header */
.pushy-container { -webkit-perspective: unset; }
.pushy-menu-btn { display: none; font-size: 50px; line-height: 1; position: absolute; right: 13.75rem;
  top: 50%; transform: translateY(-50%); }

a.up-button { background-color: #ba252b; bottom: 1rem; border-radius: 1.875rem; color: #fff; display: block;
  font-family: 'Font Awesome 5 Free'; font-size: 2rem; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased;
  font-variant: normal; font-weight: 900; left: 0.5rem; line-height: 1; padding: 0.8125rem 0.8125rem; position: fixed;
  text-decoration: none; text-rendering: auto; transition: all 0.4s; z-index: 2; }
a.up-button:focus, a.up-button:hover { background-color: #a02025; }
a.up-button::before, a.up-button:before { content: '\f062'; }
/* End navigation */

/* Slideshow */
.slideshowarea { font-size: 0; }
.slideshowarea > * { display: inline-block; margin: 0; padding: 0; vertical-align: middle; }

.sparkstats { text-align: center; width: calc(100% - 384px); }
.sparkstats h1 { font-size: 40px; line-height: normal; margin: 0 25px 50px; text-align: left; }
.sparkstats > div { color: #ba252b; display: inline-block; font-size: 1.5625rem; font-weight: bold; margin: 0 1.5625rem; text-align: center; vertical-align: inherit; }
.sparkstats h2 { color: #c64a4f; display: inline-block; font-size: 5rem; line-height: calc(92 / 80); position: relative; }
.sparkstats > div:not(:last-child) h2::after { background-image: url('../images/spark-icon.svg'); background-position: center;
  background-repeat: no-repeat; background-size: cover; content: ''; display: block; height: 2.3125rem; left: -1.375rem;
  position: absolute; top: -0.5rem; width: 2.375rem; }
.sparkstats h2, .sparkstats p { margin: 0; }
.sparkstats p { line-height: calc(28 / 25); }
.sparkstats em, .sparkstats i { display: block; font-size: 1.3125rem; line-height: calc(28 / 21); }
/* End slideshow */

/* Copyarea */
.copyarea { position: relative; }
.copyarea.inner { margin-top: 2rem; }
.item-page.has-spark { margin-top: 4.5rem; }
.copyarea ol, .copyarea ul:not(.breadcrumbs) { margin: 1.5rem 0 1.5rem 0; padding-left: 1.875rem; }
.copyarea ol li, .copyarea ul:not(.breadcrumbs) li { line-height: calc(23 / 16); margin: 0 auto 0.625rem; }

.has-spark { margin-top: 3.75rem; position: relative; }
.has-spark::before, .has-spark:before { background-image: url('../images/spark-icon.svg'); background-position: center;
  background-repeat: no-repeat; background-size: cover; content: ''; display: block; height: 2.3125rem; left: -6px;
  position: absolute; top: -26px; width: 2.375rem; }

.about-signature { color: #c64a4f; font-size: 20px; text-align: center; }
.about-signature, .about-signature p { line-height: calc(24 / 20); }
.about-signature h2 { color: #ba252b; margin: 0; }
/* .copyarea::after, .copyarea:after { bottom: 0; content: ''; left: 0; position: absolute; } */
.page-bottom { background-image: url('../images/bg-copyarea.jpg'); background-position: center bottom;
  background-repeat: no-repeat; background-size: cover; height: 32vw; width: 100%; }
.page-bottom { margin-top: -80px; position: relative; z-index: -1; }
.page-bottom.inner { margin-top: 1rem; }

/* Reset left/right margins back to auto for component content that may contain its own rows and columns */
.row.reset { margin-left: auto; margin-right: auto; }

dl dt.result-title:first-child { margin: 0 auto 0.3125rem; }
dl dt.result-title:not(:first-child) { margin: 1rem auto 0.3125rem; }

.videowrapper { /* background styles, etc. */ border: 0; margin: 0 auto 36px; position: relative; }
.videowrapper::before, .videowrapper:before { content: ''; float: left; margin-left: -1px; padding: 56.25% 0 0 0; width: 1px; }
.videowrapper::after, .videowrapper:after { clear: both; content: ''; display: table; }
.videowrapper embed, .videowrapper iframe, .videowrapper object { border: 0; height: 100%; margin: 0; max-width: unset; position: absolute; width: 100%; }

.squarephoto { margin: 0 auto; position: relative; }
.squarephoto::before, .squarephoto:before { content: ''; float: left; margin-left: -1px; padding: 100% 0 0 0; width: 1px; }
.squarephoto.ar16-9::before, .squarephoto.ar16-9:before { padding: calc(100% * 0.5625) 0 0 0; }
.squarephoto::after, .squarephoto:after { clear: both; content: ''; display: table; }
.squarephoto img { border: 8px solid #ba252b; border-radius: 50%; box-shadow: inset 0 0 10px 0 rgba(0,0,0,0.45);
  height: 100%; margin: 0; max-width: unset; overflow: hidden; position: absolute; width: 100%; }

.photoblock { background-position: center; background-repeat: no-repeat; background-size: contain; display: inline-block;
  font-size: 0; height: 200px; margin: 10px 0; width: 100%; }
.photoblock a { display: block; height: 100%; }

input[name="a_password"] { display: none; height: 0; visibility: hidden; }
/* End copyarea */

/* Footer */
footer { border-top: 0.625rem solid #ba252b; color: #ba252b; font-weight: bold; padding: 0.875rem 0; }
footer a { text-decoration: underline; }
footer a:focus, footer a:hover { text-decoration: none; }
footer p { margin: 0; }
footer .moduletable { margin: 0 0 1rem; }
.dev-copyright { font-size: 0.875rem; font-weight: normal; margin-top: 2.25rem; }
/* End footer */

/* Locations map styles */
.gmaps-wrapper { position: relative; }
.noscroll { pointer-events: none; }
.gmaps-wrapper, .location-map { border: 0.063rem solid #0a0a0a; box-shadow: 0 0 0.188rem 0 rgba(51,51,51,0.5); }
.gmaps-wrapper .details * { color: #fff; }
.gmaps-wrapper .details a { color: #ccd699; text-decoration: underline; }
.gmaps-wrapper .details a:focus, .gmaps-wrapper .details a:hover { text-decoration: none; }
.gmaps-wrapper .details { background: rgba(0,0,0,0.8); bottom: 0; cursor: default; left: 0;
  padding: 0.625rem; pointer-events: unset; position: absolute; right: 0; top: 0; z-index: 1000; }
/* End locations map styles */

/* Custom CSS */
blockquote { border-left: 0.1875rem solid #0a0a0a; margin: 1rem 0; padding: 0.9375rem 1rem; }
blockquote, blockquote p { color: inherit; }
blockquote > p:last-child, blockquote [class*="button"]:last-of-type { margin-bottom: 0; }
input[readonly] { background-color: inherit; }
select { background-position: right center; }
span.br { display: initial; }

.recap-container { position: relative; }
.recap-container > div { display: none; }
.grecaptcha-badge { margin: 0 0 1rem; }
.required::before, .required:before { color: #c71c24; content: '*'; display: inline-block; vertical-align: top; }
.pagination-list { margin-left: 0; }
.pagination .has-tip { cursor: pointer; }
.pagination li:last-child, .pagination li:first-child, .pagination li.nav-start,
  .pagination li.nav-prev, .pagination li.nav-next, .pagination li.nav-end { display: inline-block; }

.imageset img { display: block; margin: 0 auto; }

/* End custom CSS */

/* Media queries */
/* Small and up */
@media only screen and (min-width: 0em) {}

/* Small only */
@media only screen and (max-width: 34.000em) {
  .donatebtn { display: none; }
  .pushy-menu-btn { right: 6%; }

  /* .copyarea.inner { margin-top: 2rem; } */
}

@media only screen and (max-width: 39.9375em) {
  .masthead-content > *.logo { margin-right: 0; width: 12.5rem; }
  .masthead-content > *.topnavarea { width: calc(100% - 200px); }

  .sparkstats h2 { font-size: 3.375rem; line-height: calc(92 / 54) }
  .sparkstats > div { font-size: 1.25rem; }
  .sparkstats p { line-height: calc(22 / 20); }
  .sparkstats em, .sparkstats i { font-size: 1rem; line-height: calc(22 / 16); }

  .has-spark::before, .has-spark:before { height: 16px; left: 5px; top: -8px; width: 17px; }

  footer .columns { margin-bottom: 1rem; }
  footer .text-right { text-align: left; }
}

/* Medium and up */
@media only screen and (min-width: 40em) {
  .masthead-content { padding: 0 .9375rem; }
}

@media only screen and (min-width: 52.500em) and (max-width: 73.375em) {
  .masthead.home { margin-bottom: 60px; }
  .sparkstats h1 { font-size: 32px; margin-bottom: 36px; }
}

@media only screen and (max-width: 73.375em) {
  .sparkstats h1 { text-align: unset; }
}

@media only screen and (max-width: 52.438em) {
  .sparkstats { display: block; margin: 0 auto 70px; width: 100%; }
  .sparkstats > div { margin: 0 1.5625rem 2rem; }
}

/* Medium only */
@media only screen and (min-width: 40em) and (max-width: 63.9375em) {}

/* Variable max-width; depends on size of the menubar */
@media only screen and (max-width: 53.063em) {

}

/* Medium and lower */
@media only screen and (max-width: 63.9375em) {

}

/* Large and up */
@media only screen and (min-width: 64em) {

}

@media only screen and (max-width: 71.188em) {
  .mainmenu { display: none; }
  .pushy-menu-btn { display: block; }
}

@media only screen and (max-width: 74.313em) {
  .masthead-content > *.logo { margin-right: 6.25rem; }
  .masthead-content > *.topnavarea { width: calc(100% - 212px - 100px); }
}

/* Large only */
@media only screen and (min-width: 64em) and (max-width: 74.9375em) {}

/* Xlarge and up */
@media only screen and (min-width: 75em) {

}

@media only screen and (max-width: 75em) {
  footer { padding-left: 3%; padding-right: 3%; }
}

@media only screen and (min-width: 40em) and (max-width: 75.875em) {
  .has-spark:not(.large-7)::before, .has-spark:not(.large-7):before { height: 1.4375rem; left: 0.625rem; top: -0.5rem; width: 1.5rem; }
}

/* Xxlarge and up */
@media only screen and (min-width: 90em) {}
