/* MOBILE/QC STYLES */

h1.h3.subheading,
.special-events-body .h1,
.special-events-body h1 {
  font-size: 3.25rem;
  line-height: 3.75rem;
  font-weight: 300 !important;
  font-family: "Quincy CF", serif;
  text-transform: none;
  letter-spacing: 0.0975rem;
}

@media (min-width: 992px) {

  h1.h3.subheading,
  .special-events-body .h1,
  .special-events-body h1 {
    font-size: 6.25rem;
    line-height: 5.625rem;
    letter-spacing: .048rem;
  }
}

.special-events-body h2,
.special-events-body .h2 {
  font-size: 2.5rem;
  line-height: 2.625rem;
  font-weight: 300;
  font-family: "Quincy CF", serif;
  margin-bottom: 1.5rem;
}

@media (min-width: 992px) {

  .special-events-body .h2,
  .special-events-body h2 {
    font-size: 4rem;
    line-height: 3.75rem;
  }
}

.special-events-body h3,
.special-events-body .h3 {
  font-size: 2.1875rem;
  line-height: 2.1875rem;
  font-weight: 300;
  font-family: "Quincy CF", serif;
  margin-bottom: 1.5rem;
  text-transform: none;
  letter-spacing: 0;
}

.special-events-body .h3.text-sans,
.special-events-body h3.text-sans {
  font-size: 1.5rem;
  line-height: 2.625rem;
  margin-bottom: 0;
}

.special-events-body .quote-wrapper h3,
.special-events-body .quote-wrapper .h3 {
  font-size: 1.625rem;
  line-height: 2.125rem;
}

.special-events-body h3.alt,
.special-events-body .h3.alt {
  font-size: 1.5rem;
  line-height: 1.65rem;
}

@media (min-width: 992px) {

  .special-events-body .h3,
  .special-events-body h3 {
    font-size: 2.75rem;
    line-height: 2.75rem;
  }

  .special-events-body .h3.text-sans,
  .special-events-body h3.text-sans {
    font-size: 2.25rem;
    line-height: 2.25rem;
  }

  .special-events-body .quote-wrapper h3,
  .special-events-body .quote-wrapper .h3 {
    font-size: 2.325rem;
    line-height: 3rem;
  }

  .special-events-body h3.alt,
  .special-events-body .h3.alt {
    font-size: 3rem;
    line-height: 3.3rem;
  }
}

.special-events-body h4,
.special-events-body .h4 {
  font-size: 0.75rem;
  line-height: 0.825rem;
  letter-spacing: 0.08rem;
  text-transform: uppercase;
  font-weight: 600;
  font-family: "Open Sans", sans-serif;
}

.special-events-body h4.is-style-quincy,
.special-events-body .h4.is-style-quincy {
  font-size: 1.75rem;
  line-height: 1.875rem;
  text-transform: capitalize;
  font-weight: 300;
}

@media (min-width: 992px) {

  .special-events-body .h4,
  .special-events-body h4 {
    font-size: 1rem;
    line-height: 1.1rem;
  }

  .special-events-body h4.is-style-quincy,
  .special-events-body .h4.is-style-quincy {
    font-size: 2.25rem;
    line-height: 2.375rem;
    text-transform: capitalize;
    font-weight: 300;
  }
}

.special-events-body h5,
.special-events-body .h5 {
  font-size: 0.75rem;
  line-height: 0.675rem;
  font-family: "Open Sans", sans-serif;
  letter-spacing: 0.32rem;
  font-weight: 600;

}

@media (min-width: 992px) {

  .special-events-body .h5,
  .special-events-body h5 {
    font-size: 1.5rem;
    line-height: 1.65rem;
  }
}

.special-events-body .h6,
.special-events-body h6 {
  font-family: "Quincy CF", serif;
  font-weight: 300;
  font-size: 0.875rem;
  line-height: 1.14rem;
  letter-spacing: 0;
}

@media (min-width: 992px) {

  .special-events-body .h6,
  .special-events-body h6 {
    font-size: 1.25rem;
    line-height: 1.17rem;
  }
}

.special-events-body .p,
.special-events-body p {
  font-family: "Open Sans", sans-serif;
  margin-bottom: 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.36rem;
  font-weight: 300;
  font-style: normal;
  color: #4f4f4f;
}

.special-events-body p.p-alt {
  font-size: 1rem;
  line-height: 1.3rem;
  letter-spacing: 0.08rem;
  text-transform: uppercase;
}

@media (min-width: 992px) {

  .special-events-body .p,
  .special-events-body p {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .special-events-body .p.is-style-quincy,
  .special-events-body p.is-style-quincy {
    font-size: 1.25rem;
  }

  .special-events-body p.p-alt {
    font-size: 1.125rem;
  }
}


.special-events-body strong,
.special-events-body b {
  font-weight: 600;
}






.special-events-body .hotlinks {
  padding: 0;
  visibility: hidden;
  position: relative;
  padding: 1rem 0;
}

.special-events-body .hotlinks:after {
  background: #f4f1f0;
  content: "";
  visibility: visible;
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

.special-events-body .hotlinks a {
  color: #262626;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.265rem;
  visibility: visible;
  position: relative;
  z-index: 1;
  padding: 0.5rem 1rem 0.25rem;
  border-bottom-width: 0.25rem;
}

@media (min-width: 992px) {
  .special-events-body .hotlinks {
    padding: 0;
  }

  .special-events-body .hotlinks a {
    font-size: 0.875rem;
    padding: 2rem 1rem 1.5rem;
    border-bottom-width: 0.5rem;
  }
}

.special-events-body .hotlinks a:after {
  content: "";
  width: 1px;
  height: 100%;
  max-height: 3rem;
  background: #CCC;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(calc(-50% + 0.25rem));
}

.special-events-body .hotlinks a:last-child:after {
  display: none;
}

.image-link {
  position: relative;
}

.image-link:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.35) 20.5%, rgba(0, 0, 0, 0) 49.5%, rgba(0, 0, 0, 0.35) 80%, rgba(0, 0, 0, 0.6) 100%);
  background-blend-mode: multiply;
  pointer-events: none;
}

.image-link figure:after {
  opacity: 0;
  content: "";
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  width: calc(100% - 3rem);
  height: calc(100% - 3rem);
  background-image: url(./frame-border.svg);
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 3;
  pointer-events: none;
  transition: opacity 0.5s ease;
}

.image-link:focus figure:after,
.image-link:active figure:after,
.image-link:hover figure:after {
  opacity: 1;
}

.image-link figcaption {
  text-decoration: none;
  color: #fff;
  text-align: center;
  display: block;
  width: 100%;
  position: absolute;
  font-weight: 300;
  font-family: "Quincy CF", serif;
  top: 65%;
  left: 0;
  text-transform: none;
  letter-spacing: 0.064rem;
  pointer-events: none;
  z-index: 2;
  font-size: 1.75rem;
  margin: 0;
}

@media (min-width: 992px) {
  .image-link figcaption {
    /* font-size: 2.5rem; */
  }
}

.mx-n3 {
  margin-left: -1.5rem !important;
  margin-right: -1.5rem !important;
}











.border-box-border {
  pointer-events: none;
}



/* BORDER BOXES/FLOURISHES */
.box-border {
  background-image: url(./border-y.svg), url(./border-y.svg), url(./border-x.svg), url(./border-x.svg);
  background-repeat: repeat-y, repeat-y, repeat-x, repeat-x;
  background-position: left top, right 20%, left top, 20% bottom;
  background-size: 3px 466px, 3px 466px, 468px 3px, 468px 3px;
  position: absolute;
  z-index: 2;
  top: calc(var(--border-gap) * 2);
  left: calc(var(--border-gap) * 2);
  width: calc(100% - var(--border-gap) * 4);
  height: calc(100% - var(--border-gap) * 4);
  pointer-events: none;
}

.box-border:after {
  content: "";
  background-image: url(./border-y.svg), url(./border-y.svg), url(./border-x.svg), url(./border-x.svg);
  background-repeat: repeat-y, repeat-y, repeat-x, repeat-x;
  background-position: left 40%, right 60%, 40% top, 60% bottom;
  background-size: 3px 466px, 3px 466px, 468px 3px, 468px 3px;
  position: absolute;
  top: var(--border-gap);
  left: var(--border-gap);
  width: calc(100% - var(--border-gap) * 2);
  height: calc(100% - var(--border-gap) * 2);
}

.box-flourish {
  position: absolute;
  z-index: 2;
}


.flourish-variant-01 .box-border {
  clip-path: polygon(0 0,
      0 100%,
      100% 100%,
      100% 3.22rem,
      calc(100% - 1.1rem) 3.22rem,
      calc(100% - 1.5rem) 0);
}

.flourish-variant-01 .box-flourish {
  position: absolute;
  width: var(--flourish-food-beverage-width);
  height: var(--flourish-food-beverage-height);
  background: url("./svgs/Food & Beverage.svg") top right no-repeat;
  top: 0.25rem;
  right: 0;
}


.flourish-variant-02 {
  z-index: 3;
}

.flourish-variant-02 .box-border {
  clip-path: polygon(100% 0,
      0 0,
      0 calc(100% - 1.75rem),
      0.6rem calc(100% - 0.7rem),
      3.45rem calc(100% - 0.7rem),
      5.4rem 100%,
      100% 100%);
  height: calc(100% - var(--border-gap) * 8);
  top: calc(var(--border-gap) * 4);
  width: calc(100% - var(--border-gap) * 8);
  left: calc(var(--border-gap) * 4);
}

.flourish-variant-02 .box-flourish {
  position: absolute;
  width: var(--flourish-crafted-width);
  height: var(--flourish-crafted-height);
  background: url("./svgs/Crafted.svg") bottom left no-repeat;
  /* background-size: 9rem auto; */
  bottom: calc(0.25rem + var(--border-gap) * 2);
  /* bottom: 0.25rem; */
  left: calc(-0.9rem + var(--border-gap) * 2);
  z-index: 2;
}

.flourish-variant-03 .box-border {
  clip-path: polygon(100% 100%,
      0 100%,
      0 1.6rem,
      2rem 0.7rem,
      5.1rem 0.7rem,
      4.8rem 0,
      100% 0);
}

.flourish-variant-03 .box-flourish {
  position: absolute;
  width: var(--flourish-dining-width);
  height: var(--flourish-dining-height);
  background: url("./svgs/Dining.svg") top left no-repeat;
  left: -0.25rem;
  top: 0.8rem;
}

.flourish-variant-04 .box-border {
  clip-path: polygon(15% 100%,
      100% 100%,
      100% 2.30rem,
      calc(100% - 2rem) 5.5rem,
      calc(100% - 4.3rem) 5.5rem,
      calc(100% - 1.7rem) 0,
      0 0,
      0 100%);
}

.flourish-variant-04 .box-flourish {
  position: absolute;
  width: var(--flourish-secret-width);
  height: var(--flourish-secret-height);
  background: url("./svgs/Secret.svg") top right no-repeat;
  top: 0.80rem;
  right: 0.5rem;
}

.flourish-variant-05 .box-border {
  clip-path: polygon(100% 100%,
      0 100%,
      0 1.9rem,
      2rem 2.5rem,
      4rem 2.5rem,
      3.75rem 0.40rem,
      2.4rem 0,
      100% 0);
}

.flourish-variant-05 .box-flourish {
  position: absolute;
  width: var(--flourish-exhibit-width);
  height: var(--flourish-exhibit-height);
  background: url("./svgs/Exhibit.svg") top left no-repeat;
  left: 0.5rem;
  top: 1rem;
}


.box-content,
.wp-block-group.box-content {
  padding: 3rem;
}



@media (min-width: 992px) {


  .box-content,
  .box-content-lg,
  .wp-block-group.box-content {
    padding: 5rem;
  }

  .flourish-variant-01 .box-content {
    padding-left: 3rem;
  }

  .flourish-variant-01 {
    transform: translate(3rem, 3rem);
    position: relative;
    z-index: 1;
    width: calc(100% + 1rem);
  }

  .flourish-variant-01 .box-content,
  .flourish-variant-01 .box-content-lg {
    transform: translateX(2rem);
    padding-right: 5.5rem;
  }

  .flourish-variant-01 .box-flourish {
    top: 1.25rem;
  }

  .flourish-variant-01 .box-border {
    width: calc(100% - var(--border-gap) * 2);
    height: calc(100% - var(--border-gap) * 8);
    left: 0;
    top: calc(var(--border-gap) * 4);
  }

  .flourish-variant-02 {
    z-index: 3;
  }

  .flourish-variant-02 .box-border {
    height: calc(100% - var(--border-gap) * 13);
    width: calc(100% - var(--border-gap) * 7);
    top: calc(var(--border-gap) * 9.5);
    left: calc(var(--border-gap) * 3.5);
  }

  .flourish-variant-02 .box-flourish {
    bottom: calc(0.25rem + var(--border-gap));
    bottom: calc(0.25rem + var(--border-gap) * 1.5);
    left: calc(0.25rem + var(--border-gap) * -0.5);
  }

  .flourish-variant-03 {
    margin: 3rem 0;
    transform: translateX(-4rem);
  }

  .flourish-variant-03 .box-border {
    width: calc(100% + 1rem);
  }

  .flourish-variant-04 {
    margin: 3rem 0;
    transform: translateX(4rem);
  }

  .flourish-variant-04 .box-border {
    width: calc(100% + 1rem);
    transform: translateX(-3rem);
  }

  .flourish-variant-05 .box-border {
    width: calc(100% + 1rem);
  }

}



/* BUTTONS */
.wp-block-buttons {
  margin-top: 1.5rem;
}

.wp-block-buttons>.wp-block-button .wp-block-button__link {
  border-radius: 0.3125rem;
}

.wp-block-buttons>.wp-block-button.is-style-btn-alternate .wp-block-button__link {
  color: #115740 !important;
  border-color: #115740 !important;
  padding: 1rem 1.5rem !important;
}

.wp-block-buttons>.wp-block-button.is-style-btn-alternate .wp-block-button__link:hover,
.wp-block-buttons>.wp-block-button.is-style-btn-alternate .wp-block-button__link:focus,
.wp-block-buttons>.wp-block-button.is-style-btn-alternate .wp-block-button__link:active {
  color: #FFF !important;
  background-color: #115740 !important;
}

.wp-block-buttons>.wp-block-button.btn-large .wp-block-button__link {
  font-size: 0.875rem;
  line-height: 1.3rem;
  padding: 1.5rem !important;
  letter-spacing: 0.1rem;
}

#staffModal .btn-text {
  background: transparent;
  border: none;
}





/* RESPONSIVE COVER ELEMENT */
@media (max-width: 991px) {

  /* reset the cover element styles on mobile */
  .wp-block-cover.cover-lg,
  .wp-block-cover.cover-lg .wp-block-cover-image {
    display: block;
    padding: 0;
    min-height: 0;
  }


  .wp-block-cover.cover-lg img.wp-block-cover__image-background {
    position: relative;
    height: auto;
    width: 100%;
    display: block;
    padding: 1rem 2rem 0;
  }

  .wp-block-cover.cover-lg .wp-block-cover__inner-container {
    display: block;
    width: 100%;
  }
}

@media (min-width: 992px) {
  .wp-block-cover.cover-inset .wp-block-cover__image-background {
    width: 92%;
    margin-left: 4%;
  }
}




/* STAFF BIOS */
.staff-bio-wrapper,
.staff-bio-wrapper p {
  color: #FFF;
}

.staff-bio-wrapper figure:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(102, 102, 102, 0) 28.18%, rgba(0, 0, 0, 0.8) 100%);
}

.staff-bio-wrapper .w-100 {
  position: absolute;
}

.staff-bio-content {
  display: none;
}

#staffModal .modal-content {
  border-radius: 0;
}

@media (min-width: 576px) {
  #staffModal .modal-dialog {
    max-width: min(80dvw, 1200px);
  }
}


/* SLIDER STYLES */
.events-gallery .slick-list {
  margin: 0;
  width: 100%;
  max-width: none;
  height: auto !important;
}

.events-gallery .slick-slide img {
  transform: scale(0.9);
  transition: transform 0.25s ease;
}

.events-gallery .slick-slide.slick-active img {
  transform: scale(1.145);
}

@media (min-width: 992px) {

  .events-gallery .slick-slide img,
  .events-gallery .slick-slide.slick-active img {
    transform: none;
  }
}

.blocks-gallery-item.slick-current,
.blocks-gallery-item.slick-slide {
  transform: none !important;
  margin: 0;
  height: auto;
}

.gallery-nav {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 2rem 0 1rem;
}

.gallery-nav>* {
  display: flex;
}

.gallery-nav .slick-arrow {
  position: relative;
  transform: none;
}

.gallery-nav .slick-arrow-next {
  order: 2;
}

.slick-dots {
  padding: 0;
  margin: 0 1.5rem;
}

.slick-dots li {
  display: inline;
  height: auto;
  line-height: 0.5rem;
}

.slick-dots li button {
  text-indent: -9999px;
  border: none;
  color: #262626;
  background: #262626;
  font-size: 0.5rem;
  line-height: 0.5rem;
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border-radius: 50%;
  margin: 0 0.5rem;
  opacity: 0.5;
}

.slick-dots li.slick-active button {
  opacity: 1;
}


/* BLOCKQUOTES */
.quote-wrapper {
  position: relative;
  padding-top: 4rem;
}

.quote-wrapper:before {
  content: "";
  color: #fff;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-image: url(./svgs/quote.svg), url(./svgs/quote_divider.svg), url(./svgs/quote_divder_right.svg);
  background-position: center 0.25rem, left calc(1.25rem - 4px), right calc(1.25rem - 4px);
  background-size: auto 20px, calc(50% - 3rem) auto, calc(50% - 3rem) auto;
  background-repeat: no-repeat;
}

@media (min-width: 992px) {
  .quote-wrapper:before {
    background-position: center top, left calc(1.25rem - 4px), right calc(1.25rem - 4px);
    background-size: auto, calc(50% - 3rem) auto, calc(50% - 3rem) auto;
  }
}

/* MISC UTILITIES */
.delay-500 {
  animation-delay: 500ms;
}

.rfp-affix {
  z-index: 888;
  transition: transform 0.25s ease;
  transform: translateY(-50%);
}

/* janky af fix for hotlinks + rfp button positioning */
.fixed+.rfp-affix {
  transform: translateY(0);
}

.rfp-affix .wp-block-button:not(.is-style-btn-cta) .wp-block-button__link {
  background-color: #014533;
  font-size: 0.875rem;
  letter-spacing: 0.125rem;
  font-family: "Open Sans", sans-serif;
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.rfp-affix .wp-block-button:not(.is-style-btn-cta) .wp-block-button__link:hover,
.rfp-affix .wp-block-button:not(.is-style-btn-cta) .wp-block-button__link:focus,
.rfp-affix .wp-block-button:not(.is-style-btn-cta) .wp-block-button__link:active {
  background-color: #003b2a;
  background-image: inherit;
  background-image: url(../img/rfp-icon.png);
  background-position: 15px center;
  background-repeat: no-repeat;
}

@media (max-width: 991px) {
  .rfp-affix {
    transform: translateY(-20%);
  }

  .hotlinks:not(.fixed)+.rfp-affix {
    transform: translateY(140%);
  }
}

@media (max-width: 399px) {
  .hotlinks:not(.fixed)+.rfp-affix {
    transform: translateY(185%);
  }
}

/* breadcrumb */
ol.breadcrumb li:first-child a::before {
  display: none;
}

/* prevent line breaks on certain italicized text */
.em-nowrap em {
  white-space: nowrap;
}

/* weird one-off padding */
.padding-2 {
  padding: 2rem;
}

/* weird half height mobile background */
.bg-xs-limestone-half {
  position: relative;
}

.bg-xs-limestone-half:before {
  content: "";
  position: absolute;
  background: #f4f1f0;
  background: linear-gradient(0deg, rgba(244, 241, 240, 1) 0%, rgba(244, 241, 240, 0) 100%);
  width: 100%;
  height: 50%;
  left: 0;
  bottom: 0;
}

code {
  font-family: inherit !important;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  white-space: nowrap;
}

@media (min-width: 992px) {
  .bg-lg-none:before {
    display: none;
  }
}

@media (max-width: 991px) {
  .responsive-unicorn img {
    max-height: 1.25rem;
    width: auto;
  }

  .spacer-b-xs:after {
    content: "";
    display: block;
    position: relative;
    background: #f4f1f0;
    height: 2rem;
    width: 100%;
  }
}

/* FAQs */
@media (max-width: 991px) {
  .ckeditor-accordion-container>dl>dt>a.ckeditor-accordion-toggler {
    font-size: 1.125rem;
    line-height: 1.26rem;
    letter-spacing: 0;
  }
}

.mt-n3 {
  margin-top: -1.5rem;
}