.container-lg {
  max-width: 1536px;
}

/*
 * Page Spacer
 *
 * Dynamically adjust height to accomodate `.masthead`
 */

.page-spacer {
  &::before {
    content: "";
    display: block;
    height: 111px;
  }
}

@media (min-width: 1600px) {
  .page-spacer {
    &::before {
      height: 122px;
    }
  }
}

/*
 * Button
 */

.btn {
  border-radius: 0.5rem;
  border: 0;
  cursor: pointer;
  display: inline-block;
  font-family: inherit;
  font-weight: bold;
  padding: 1rem 2rem;

  /* Disable hover/focus changes for `.is-stateless` components */
  &:not(.is-stateless):hover,
  &:not(.is-stateless):focus {
    background-color: var(--orange);
    color: var(--white);
  }
}

.btn-primary {
  background: var(--red);
  color: var(--white);

  &:hover,
  &:focus {
    background-color: var(--white);
    color: var(--red);
  }
}

.btn-inverse {
  background-color: var(--white);
  color: var(--orange);
}

/*
 * Image Link
 */

.img-link {
  border-bottom: .175rem solid var(--white);
}

.img-link-caption {
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

.img-link-photo {
  &::after {
    background: rgba(0 0 0 / .175);
    bottom: 0;
    content: "";
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    transition: background-color .25s ease;
  }
}

.img-link-photo:hover {
  &::after {
    background: rgba(213 90 41 / .5);
  }
}

@media (min-width: 768px) {
  .img-link-group {
    display: flex;
    flex-wrap: wrap;
  }

  .img-link {
    /* Add a left border to the image grid */
    &:nth-child(even) {
      border-left: .175rem solid var(--white);
    }
  }
}

/*
 * Footer
 */

.footer {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;

  &::after {
    background: rgba(15 61 80 / .85);
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
  }
}

.icon-link {
  svg {
    fill: var(--white);
    vertical-align: middle;
  }
}

.back-to-top {
  border-radius: 100%;
  bottom: 1rem;
  display: inline-flex;
  height: 2.75rem;
  opacity: 0;
  pointer-events: none;
  right: 1rem;
  transform: translateY(.25rem);
  transition: opacity .25s ease, transform .25s ease, background-color .25s ease;
  width: 2.75rem;
}

.back-to-top:hover,
.back-to-top:focus-visible {
  background: var(--red);
}

.back-to-top:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: 2px;
}

.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.back-to-top-icon {
  fill: currentColor;
  height: 1.5rem;
  width: 1.5rem;
}

/*
 * Pagination
 */

.pagination-link,
.pagination-ellipsis {
  background: var(--white);
  border: .175rem solid var(--tan);
  border-radius: 50%;
  color: var(--navy);
  font-size: var(--h5);
  font-weight: var(--font-bold);
  height: 2rem;
  min-width: 2rem;
  transition: background-color .175s ease, border-color .175s ease, color .175s ease;
}

@media (min-width: 512px) {
  .pagination-link,
  .pagination-ellipsis {
      height: 3rem;
    min-width: 3rem;
  }
}

.pagination-link:hover,
.pagination-link:focus-visible {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--white);
}

.pagination-link:focus-visible {
  outline: .175rem solid var(--orange);
  outline-offset: .175rem;
}

.pagination-link-current,
.pagination-link-current:hover,
.pagination-link-current:focus-visible {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
}

.pagination-link-disabled,
.pagination-link-disabled:hover,
.pagination-link-disabled:focus-visible {
  background: var(--smoke);
  border-color: var(--tan);
  color: var(--gray);
  cursor: not-allowed;
}

.pagination-ellipsis {
  background: transparent;
  border-color: transparent;
  color: var(--gray);
}

.pagination-chevron {
  height: 1.25rem;
  width: 1.25rem;
}

@media (min-width: 768px) {
  .back-to-top {
    bottom: 1.5rem;
    right: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .back-to-top {
    transition: none;
  }
}

.logo-footer {
  img {
    max-width: 50%;
  }
}

@media (min-width: 768px) {
  .logo-footer {
    img {
      max-width: 100%;
    }
  }

  .site-map {
    border-bottom: 0;
  }
}

/*
 * Logo
 */

.logo {
  min-width: 256px;
}

@media (min-width: 1600px) {
  .logo {
    padding-left: 0;
  }

  .menu {
    padding-right: 0;
  }
}

/*
 * Menu
 */

.masthead {
  background-color: rgba(255 255 255 / .9);
  /*border-bottom: 1px solid var(--white);*/
  top: 0;
  height: auto;
}

.menu {
  isolation: isolate;
}

.menu-link {
  color: var(--navy);

  /* Underline */
  &::after {
    background-color: var(--blue);
    bottom: 5px;
    content: "";
    height: 2px;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    transition: width .175s ease-out;
    width: 0;
  }

  /* Underline visibility for focused state */
  &:focus-visible::after {
    width: 100%;
  }
}

.menu-item {
  &:hover .menu-link::after {
    width: 100%;
  }

  &:hover > .submenu {
    opacity: 1;
    pointer-events: auto;
  }

  .menu-link:focus-visible + .submenu {
    opacity: 1;
  }
}

.submenu {
  background-color: var(--navy);
  box-shadow: 0 6px 12px rgba(0 0 0 / .5);
  min-width: max-content;
  opacity: 0;
  pointer-events: none;
  right: 0;
  top: 2.75rem;
  transition: opacity .25s ease;

  &:has(.submenu-link:focus-visible),
  &:focus-visible {
    opacity: 1;
  }
}

/* Hide on desktop */
.submenu-btn {
  display: none;
}

.submenu-link {
  border-bottom: 1px solid var(--blue);
  color: var(--white);

  &:hover,
  &:focus-visible {
    background-color: var(--blue);
    color: var(--yellow);
  }

  &:last-of-type {
    border: 0;
  }
}

.submenu-link-external-icon {
  fill: currentColor;
  height: .75em;
  width: .75em;
}

.toggle-button {
  display: none;
}

.menu-item-btn {
  display: none;
}

@media (max-width: 960px) {
  .menu {
    display: none;
    background-color: var(--white);
    flex-direction: column;
    height: 100vh;
    position: absolute;
    top: 111px; /* Fix magic number */
    width: 100%;
  }

  .menu.is-visible {
    display: flex;
  }

  .menu-item {
    align-items: center;
    border-bottom: 2px solid var(--tan);
    display: flex;
    justify-content: space-between;

    &:last-of-type {
      border-bottom: 0;
    }
  }

  .menu-item-btn {
    background-color: var(--white);
    border-radius: 100%;
    border: 1px solid var(--tan);
    cursor: pointer;
    display: inline-block;
    height: 2.5rem;
    width: 2.5rem;

    svg {
      vertical-align: middle;
      width: 1rem;

      path {
        fill: var(--blue);
      }
    }
  }

  .menu-link {
    margin-left: 0;
    padding-bottom: 0;

    &:after {
      display: none;
    }
  }

  .submenu {
    display: none;
  }

  .submenu.is-visible {
    background-color: var(--white);
    box-shadow: none;
    display: block;
    height: 100%;
    max-height: calc(100vh - var(--masthead-offset, 111px));
    opacity: 100%;
    overflow-y: scroll;
    padding: 1rem 2rem;
    position: fixed;
    top: var(--masthead-offset, 111px);
    width: 100%;

    .submenu-btn {
      border: 0;
      border-bottom: 2px solid var(--tan);
      cursor: pointer;
      display: block;
      font-family: inherit;
      padding-bottom: 1rem;
      position: relative;
      text-align: left;
      z-index: 5;
    }

    .submenu-btn-icon {
      border-radius: 100%;
      border: 1px solid var(--tan);
      cursor: pointer;
      display: inline-block;
      height: 2.5rem;
      margin-right: .75rem;
      text-align: center;
      transform: scaleX(-1); /* Flip icon horizontally */
      vertical-align: middle;
      width: 2.5rem;

      svg {
        fill: var(--blue);
        vertical-align: middle;
        width: 1rem;
      }
    }

    .submenu-link {
      border-bottom: 2px solid var(--tan);
      color: var(--blue);
      font-size: var(--h5);
      font-weight: var(--font-bold);
      padding-bottom: 1rem;
      padding-top: 1rem;
      position: relative;
      z-index: 5;

      &:hover {
        background-color: var(--white);
      }

      &:last-of-type {
        border-bottom: 0;
      }
    }
  }

  .submenu-link-arrow {
    background-color: var(--white);
    border-radius: 100%;
    border: 1px solid var(--tan);
    cursor: pointer;
    display: inline-block;
    height: 2.5rem;
    width: 2.5rem;

    svg {
      vertical-align: middle;
      width: 1rem;
    }
    path {
      fill: var(--blue);
    }
  }

  .toggle-button {
    background-color: unset;
    border: 0;
    box-shadow: none;
    cursor: pointer;
    display: inline-block;
    height: 2.5rem;
    margin-right: 2rem;
    width: 2.5rem;

    svg {
      vertical-align: middle;
    }
  }

  .toggle-button.is-hidden {
    display: none;
  }
}

/*
 * Form Group
 */

.form-group-input {
  border: 1px solid var(--white);
  border-radius: 0.5rem;
  font-family: var(--font-family-sans);
  height: 3.5rem;
}

.form-group-btn {
  height: fit-content;
}

@media (min-width: 540px) {
  .form-group-input {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
  }

  .form-group-btn {
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
  }
}

/*
 * Event Listing
 */

.event-listing {
  &:last-child {
    border-bottom: 0;
  }
}

@media (min-width: 768px) {
  .event-listing-hero {
    border-bottom: 0;
  }
}

.event-description {
  a {
    color: var(--red);
  }

  p {
    font-size: var(--h4);
  }

  p + p {
    margin-top: 1rem;
  }

  h2 {
    margin-top: 2rem;
    margin-bottom: 1rem;
  }

  h2:first-child {
    margin-top: 0;
  }

  figure,
  .image {
    margin-bottom: 2rem;
    margin-top: 2rem;
  }

  figure img,
  .image img {
    border-radius: 0.5rem;
  }

  figcaption {
    color: var(--gray);
    font-size: var(--h5);
    line-height: 1.5;
    margin-top: 0.5rem;
  }
}

.initiative-content {
  a {
    color: var(--red);
    text-decoration: underline;
  }

  > * + * {
    margin-top: 2rem;
  }

  p,
  ul,
  ol {
    font-size: var(--h4);
    line-height: 1.5;
    text-wrap: pretty
  }

  p + p {
    margin-top: 1rem;
  }

  h2 {
    font-size: var(--h2);
  }

  h3 {
    font-size: var(--h3);
  }

  h4 {
    font-size: var(--h4);
  }

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

  li + li {
    margin-top: 0.5rem;
  }

  figure img,
  .image img {
    border-radius: 0.5rem;
  }

  figcaption {
    color: var(--gray);
    font-size: var(--h5);
    line-height: 1.5;
    margin-top: 0.5rem;
  }

  hr {
    border: 0;
    border-top: 0.175rem solid var(--tan);
  }

  blockquote {
    border-left: 0.25rem solid var(--orange);
    color: var(--navy);
    font-size: var(--h3);
    line-height: 1.25;
    padding-left: 1.5rem;
  }
}

.media-center-icon-link {
  transition: color 0.2s ease;
}

.media-center-icon-link:hover,
.media-center-icon-link:focus-visible {
  color: var(--red);
}

.media-center-icon {
  height: 4rem;
  width: 4rem;
}

.media-toolkit-download-icon {
  color: var(--navy);
  flex: none;
  height: 3rem;
  width: 3rem;
}

.section-rule {
  border: 0;
  border-top: 0.175rem solid var(--tan);
}

@media (min-width: 1400px) {
  .event-page-container {
    padding-left: 0;
    padding-right: 0;
  } 
}

/*
 * Stories Slider
 */

.stories-preview {
  overflow: hidden;
}

.stories-slider {
  max-width: 1200px;
}

.stories-slider-track {
  height: 440px;
}

.stories-slide {
  left: 50%;
  opacity: .25;
  pointer-events: none;
  top: 0;
  transform: translateX(-50%) scale(.72);
  transition: transform .25s ease, opacity .25s ease;
  width: min(860px, 84vw);
}

.stories-slide-link {
  border-radius: 0.5rem;
  box-shadow: 0 4px 12px rgba(0 0 0 / .25);
  overflow: hidden;
}

.stories-slide-image {
  height: 440px;
  object-fit: cover;
}

.stories-slide-overlay {
  inset: 0;
  padding: 1.5rem;
}

.stories-slide-title {
  max-width: 32ch;
}

.stories-slide.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) scale(1);
  z-index: 3;
}

.stories-slide.is-prev,
.stories-slide.is-next {
  filter: blur(4px);
  opacity: .5;
  pointer-events: auto;
  z-index: 2;
}

.stories-slide.is-prev {
  transform: translateX(calc(-50% - min(50vw, 560px))) scale(.75);
}

.stories-slide.is-next {
  transform: translateX(calc(-50% + min(50vw, 560px))) scale(.75);
}

.stories-slider-button {
  display: none;
}

@media (min-width: 512px) {
  .stories-slider-button {
    border-radius: 100%;
    border: 0;
    box-shadow: 0 4px 12px rgba(0 0 0 / .25);
    cursor: pointer;
    display: flex;
    height: 3.25rem;
    top: 50%;
    transform: translateY(-50%);
    transition: background .125s ease, border-color .125s ease;
    width: 3.25rem;
  }

  .stories-slider-button-prev {
    left: calc(50% - min(50vw, 560px) + .75rem);
  }

  .stories-slider-button-next {
    right: calc(50% - min(50vw, 560px) + .75rem);
  }
}

.stories-slider-chevron {
  height: 1.25rem;
  width: 1.25rem;
}

.stories-slider-dots {
  gap: .5rem;
  margin-top: 1.5rem;
}

.stories-slider-dot {
  background: rgba(255 255 255 / .25);
  border: none;
  cursor: pointer;
  height: .25rem;
  transition: background .25s ease, transform .25s ease;
  width: 3rem;
}

.stories-slider-dot.is-active {
  background: var(--white);
}

@media (max-width: 960px) {
  .stories-slider-track {
    height: 360px;
  }

  .stories-slide {
    width: 86vw;
  }

  .stories-slide-image {
    height: 360px;
  }

  .stories-slide.is-prev {
    transform: translateX(calc(-50% - 74vw)) scale(.75);
  }

  .stories-slide.is-next {
    transform: translateX(calc(-50% + 74vw)) scale(.75);
  }

  .stories-slider-button-prev {
    left: .25rem;
  }

  .stories-slider-button-next {
    right: .25rem;
  }
}

@media (max-width: 540px) {
  .stories-slider-track {
    height: 300px;
  }

  .stories-slide {
    width: 90vw;
  }

  .stories-slide-image {
    height: 300px;
  }

  .stories-slide-overlay {
    padding: 1rem;
  }

  .stories-slide-title {
    font-size: 1.25rem;
  }

  .stories-slide.is-prev {
    transform: translateX(calc(-50% - 82vw)) scale(.75);
  }

  .stories-slide.is-next {
    transform: translateX(calc(-50% + 82vw)) scale(.75);
  }

  .stories-slider-button {
    height: 2.75rem;
    width: 2.75rem;
  }

  .stories-slider-chevron {
    height: 1rem;
    width: 1rem;
  }
}

/*
 * Card
 */

.card {
  box-shadow: 0 4px 12px rgba(0 0 0 / .075);
  border-radius: 0.5rem; /* Needed for clipping the box shadow */
}

.card-image {
  aspect-ratio: 1 / 1;
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
  object-fit: cover;
}

.card-content {
  border-bottom-left-radius: .5rem;
  border-bottom-right-radius: .5rem;
}

.card-content-title {
  text-wrap: balance;
}

.card-pinned-link {
  bottom: 1rem;
}

/* Card modifiers for content-specific cards */

.card-equal-height {
  display: flex;
  flex-direction: column;

  .card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
  }

  .card-bottom-link {
    margin-top: auto;
  }
}

.card-news,
.card-events {
  transition: box-shadow .175s ease-in-out;

  &:hover {
    box-shadow: 0 4px 12px rgba(0 0 0 / .25);
  }

  .card-image {
    aspect-ratio: auto;
  }

  .card-content {
    overflow: hidden;
  }
}

@media (min-width: 540px) {
  .card-faded-text {
    max-height: 240px;
    mask-image: linear-gradient(
      to bottom,
      #000 50%,
      transparent 100%);
    overflow: hidden;
  }

  .card-news .card-content {
    height: 288px;
  }
}

.card-hotels,
.card-transportation {
  .card-image {
    aspect-ratio: 3 / 2;
  }
}

/*
 * Header Callout
 */

@media (min-width: 960px) {
  .header-callout {
    margin-top: -6.5rem;
    width: 768px;
  }
}

/*
 * Hero
 */

.hero {
  &::before {
    background: linear-gradient(
      to top, rgba(0, 0, 0, 1) 0%,
      rgba(0, 0, 0, 0) 50%);
    content: "";
    display: block;
    height: 100%;
    position: absolute;
    width: 100%;
    max-width: 1536px;
  }
}

.hero-title {
  bottom: 2rem;
  left: 2rem;
}

/*
 * About
 */

.about-photo-stack {
  min-height: 28rem;
}

.about-photo-stack-item {
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.125);
  position: absolute;
  width: 75%;
}

.about-photo-stack-item-1 {
  left: 0;
  top: 1rem;
  transform: rotate(-3deg);
}

.about-photo-stack-item-2 {
  right: 0;
  top: 4.5rem;
  transform: rotate(4deg);
}

.about-photo-stack-item-3 {
  bottom: 0;
  left: 18%;
  transform: rotate(-1deg);
}

.about-people-collage {
  background-color: var(--tan);
  min-height: 32rem;
}

.about-people-content {
  padding-bottom: 8rem;
  padding-top: 8rem;
}

.about-people-photo {
  box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.125);
  display: none;
  position: absolute;
  width: 8rem;
}

.about-people-photo::after {
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.about-people-photo-1::after,
.about-people-photo-6::after {
  background-color: var(--transparent-orange);
}

.about-people-photo-2::after {
  background-color: var(--transparent-navy);
}

.about-people-photo-3::after {
  background-color: var(--transparent-yellow);
}

.about-people-photo-4::after {
  background-color: var(--transparent-red);
}

.about-people-photo-5::after {
  background-color: var(--transparent-blue);
}

.about-download-icon {
  display: inline-block;
  height: 1.25em;
  margin-right: 0.5rem;
  vertical-align: -0.25em;
  width: 1.25em;
}

@media (min-width: 540px) {
  .about-photo-stack {
    min-height: 32rem;
  }
}

@media (min-width: 768px) {
  .about-photo-stack {
    min-height: 32rem;
  }

  .about-people-photo {
    display: block;
  }

  .about-people-photo-1 {
    left: 5%;
    top: 3rem;
  }

  .about-people-photo-2 {
    left: 20%;
    top: 12rem;
    transform: rotate(-4deg);
  }

  .about-people-photo-3 {
    bottom: 3rem;
    left: 5%;
  }

  .about-people-photo-4 {
    right: 5%;
    top: 3rem;
    transform: rotate(3deg);
  }

  .about-people-photo-5 {
    right: 20%;
    top: 14rem;
  }

  .about-people-photo-6 {
    bottom: 3rem;
    right: 5%;
    transform: rotate(-3deg);
  }
}

@media (min-width: 960px) {
  .about-people-photo {
    width: 10rem;
  }

  .about-people-photo-2 {
    left: 15%;
  }

  .about-people-photo-5 {
    right: 15%;
  }
}
