/*
Theme Name: Salient Child Theme
Description: This is a custom child theme for Salient
Theme URI:   https://themeforest.net/item/salient-responsive-multipurpose-theme/4363266
Author: ThemeNectar
Author URI:  https://themeforest.net/user/themenectar
Template: salient
Version: 1.0
*/

body.single-podcasts:not(.nectar-no-flex-height) {
  button.btn {
    background-color: #299c8f;
    border: none;
    border-radius: 0 !important;
    padding: 12px 20px;
    color: white;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    display: inline-block;
    width: 225px;
    height: 53px;

    @media (max-width: 768px) {
      
    }
  }
  
  .hero {
    padding: 0 65px;

    .back-link-wrapper {
      max-width: 1600px;
      margin: 55px auto 25px;
      a {
        color: black;
        display: inline-block;
        margin: 0;
        align-items: center;
        font-family: 'Montserrat', sans-serif; 

        img {
          margin-right: 7px;
          position: relative;
          bottom: -1px;
          width: 12px; 
          height: 14px;
        } 
      }
    }
    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;
      display: flex;
      gap: 45px;

      .media {
        position: relative;
        width: 75%;

        img.graphic {
          position: absolute;
          top: 65px;
          left: -225px;
          z-index: 0;
          width: 50%;
        }

        .video-popup-toggle {
          position: relative;
          z-index: 1;
          cursor: pointer;

          &:before {
            content: '';
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.4);
            z-index: 1;
          }

          img.main-image {
            width: 100%;
            display: block;
          }

          .play-icon {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%,-50%);
            z-index: 2;
            img.play-button {
              width: 85px;
              height: 85px;
            }
          }

        }
      }

      .podcast-links {
        display: flex;
        flex-direction: column;
        width: 25%;

        a {
          margin-bottom: 15px;
        }
        


      }
      
    }

    @media (max-width: 1024px) {
      padding: 0 25px;
      .back-link-wrapper{
        margin-top: 45px; 
      }

      .content-wrapper {
        flex-direction: column;
        gap: 25px;
        .media {
          width: 100%;
          img.graphic {
            display: none;
          }
        }

        .podcast-links {
          width: 100%;
          flex-direction: row;
          gap: 20px;
          justify-content: center;
          flex-wrap: wrap;
          a {
            margin: 0 ;
          }
        }
      }
    }

    @media (max-width: 768px) {

      .back-link-wrapper {
        margin-top: 25px;
      }
      .content-wrapper {
        .media {
          .video-popup-toggle {
            .play-icon {
              img.play-button {
                width: 50px;
                height: 50px;
              }
            }
          }

        }

        .podcast-links {
          gap: 10px;
          a {
            img {
              width: 150px;
            }
          }
        }
      }
    }
  }

  .details {
    padding: 65px;
    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;

      h5 {
        font-family: 'Montserrat', sans-serif;
        font-size: 12px;
        font-weight: 700;
        color: #78828A;
      }

      h1 {
        font-family: 'Montserrat', sans-serif;
        font-size: 36px;
        line-height: 38px;
        font-weight: 800;
        color: #1C2B39;
        margin-bottom: 25px;
      }

      .description {
        max-width: 1000px;
      }

      .audio-plugin {
        margin-top: 25px;
      }




    }

    @media (max-width: 1024px) {
      padding: 45px 25px;

      .content-wrapper {

      }
    }
  }

  .related-blogs {
    background-color: #EEEFF0;
    padding: 65px 65px 65px 65px;

    h2 {
      font-size: 36px;
      line-height: 38px;
      margin-bottom: 25px;
    }

    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;

      .swiper {
        overflow: visible;
      }

      .swiper-slide {
        border: solid 2px #707070;
        .card-media {
          aspect-ratio: 2;
          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
          }
        }

        .card-content {
          background: white;
          padding: 25px 35px;
          min-height: 200px;
          position: relative;

          h3 {
            font-family: 'Montserrat', sans-serif;
            font-size: 25px;
            font-weight: 800;
            line-height: 30px;
          }

          p.link {
            padding: 0;
            position: absolute;
            bottom: 25px;
            left: 35px;
            color: black;
            font-family: 'Montserrat', sans-serif;
            font-weight: 600;

            img {
              position: relative;
              margin-left: 7px;
            }
          }
        }

      }

      .swiper-pagination {
        position: relative;
        margin-top: 45px;
        display: flex;
        justify-content: center;
        gap: 12px;

        .swiper-pagination-bullet {
          background: transparent;
          border: solid 1px #299c8f;
          width: 15px;
          height: 15px;
          opacity: 1;

          &.swiper-pagination-bullet-active {
            background-color: #299c8f;
          }
        }
      }

      .swiper-controls {
        .swiper-button-prev {
          left: -50px;
          &:after {
            display: none;
          }
        }

        .swiper-button-next {
          right: -50px;
          img {
            transform: scaleX(-1);
          }
          &:after { 
            display: none; 
          }
        }
      }
    }

    @media (max-width: 1024px) {
      padding: 45px 25px 35px 25px;
      .content-wrapper {
        h2 {
          font-size: 32px;
          line-height: 36px;
          margin-bottom: 20px;
        }

        .swiper-slide {
          .card-content {
            padding: 20px;
            min-height: 175px;
            h3 {
              font-size: 18px;
              line-height: 22px;
            }
            p.link {
              left: 20px;
              bottom: 20px;
            }
          }
        }
        .swiper-controls {
          display: none;
        }
      }
    }

    @media (max-width: 768px) {
      padding: 45px 25px 25px 25px;
      .content-wrapper {
        h2 {
          font-size: 28px;
          line-height: 28px;
          margin-bottom: 15px;
        }

        .swiper-slide {
          .card-content {
            padding: 15px;
            min-height: 145px;
            h3 {
              font-size: 18px;
              line-height: 22px;
            }
            p.link {
              left: 15px;
              bottom: 15px;
            }
          }
        }
        .swiper-controls {
          display: none;
        }
        
        .swiper-pagination {
          gap: 2px;
          margin-top: 35px;

          .swiper-pagination-bullet {
            width: 12px;
            height: 12px;
          }
        }
      }
    }
  }

  .separator {
    background-color: white;
    height: 150px;
    img {
      width: 100%;
      height: 100%;
    }

    @media (max-width: 1024px) {
      height: 70px;
    }

    @media (max-width: 768px) {
      height: 45px;
    }
  }

  .series-episodes {
    padding: 85px 65px;

    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;
      .heading {
        h2 {
          margin-bottom: 45px;
        }
      }
      .single-episode {
        border: solid 2px #CDD1D4;
        border-top: none;
        position: relative;
        display: flex;
        padding: 15px 35px;

        &:first-of-type {
          border-top: solid 2px #CDD1D4;
        }

        &.is-hidden {
          display: none;
        }

        p.episode-number {
          padding-bottom: 0;
          font-size: 14px;
          line-height: 14px;
          margin-bottom: 5px;
          color: #78828A;
          font-weight: 600;
        }

        h4 {
          font-size: 20px;
          line-height: 24px;
          margin: 0;
        }

        .play-icon {
          width: 43px;
          height: 43px;
          border: solid 1px #299c8f;
          border-radius: 50px;
          position: absolute;
          right: 25px;
          top: 16px;

          img {
            position: absolute;
            width: 13px;
            top: 13px;
            left: 16px;
          }
        }
      }

      .view-more-wrapper {
        margin-top: 35px;
        display: flex;
        justify-content: center;
      }
    }

    @media (max-width: 1024px) {
      padding: 65px 25px;
    }

    @media (max-width: 768px) {
      padding: 45px 25px;

      .content-wrapper {
        .heading {
          h2 {
            margin-bottom: 25px;
          }
        }

        .single-episode {
          padding: 15px 20px;
          h4 {
            font-size: 16px;
            line-height: 20px;
          }

          p.episode-number {
            font-size: 12px;
          }
          .left {
            padding-right: 65px;
          }

          .play-icon {
            width: 30px;
            height: 30px;
            top: 50%;
            transform: translateY(-50%);
            right: 15px;

            img {
              top: 6px;
              left: 10px;
            }
          }
        }
      }
    }
  }

  .subscribe {
    position: relative;
    padding: 65px;
    img.graphic {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      z-index: 0;
    }

    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;
      position: relative;
      z-index: 1;
      background-size: cover;
      display: flex;
      height: 185px;
      padding: 65px;

      
      &:before {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #299c8f;
        z-index: 1;
        opacity: 0.8;
      }

      h3 {
        color: white;
        margin: 0;
        position: relative;
        z-index: 1;
      }
    }
  }
}

body.single-podcast-series:not(.nectar-no-flex-height) {
  /* #header-outer {
    background: white;
    backdrop-filter: none;
  }  */
 
  .hero {
    padding: 65px 45px 45px;

    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;

      .main-hero {
        display: flex;
        gap: 125px;
        border-bottom: solid 1px #707070;
        padding-bottom: 125px;
        
        .media-wrapper {
          width: 45%;
          position: relative;
          .video-popup-toggle {
            position: relative;
            width: 100%;
            aspect-ratio: 1.7;
            cursor: pointer;


            img.featured-image {
              width: 100%;
              height: 100%;
              object-fit: cover;
            }

            img.play-button {
              position: absolute;
              top: 50%;
              left: 50%;
              transform: translate(-50%,-50%);
              z-index: 1;
            }
          }

          img.series-image {
            position: absolute;
            top: 60%;
            right: -15%;
            max-width: 350px;
            width: 50%;
          }
        }

        .details {
          width: 55%;
          padding-top: 65px;

          h5 {
            font-family: 'Montserrat', sans-serif;
            font-size: 14px;
            line-height: 14px;
            font-weight: 600;
            margin-bottom: 10px;
            color: #78828A;
          }

          h1 {
            font-family: 'Montserrat', sans-serif;
            font-size: 36px;
            line-height: 38px;
            font-weight: 800;
            margin-bottom: 35px;
          }

          .description {
            padding-left: 65px;
            max-width: 600px;
          }
          
        }
      }
      .podcast-links {
        display: flex;
        justify-content: space-between;
        max-width: 1000px;
        margin: 0 auto;
        padding-top: 45px;
      }
    }

    @media (max-width: 1400px) {
      .content-wrapper {
        .main-hero {
          padding-bottom: 65px;
          .media-wrapper {
            img.series-image {
              top: 50%;
            }
          }

          .details {
            padding-top: 35px;
          }


        }
      }
    }

    @media (max-width: 1200px) {
      .content-wrapper {
        .main-hero {
          .media-wrapper {
            img.series-image {
            }
          }
        }
      }
    }

    @media (max-width: 1024px) {
      padding: 65px 25px 45px;
      .content-wrapper {
        .main-hero {
          flex-direction: column;
          gap: 65px;
          padding-bottom: 25px;
          .media-wrapper {
            width: 100%;
            .video-popup-toggle {
              img.play-button {
                width: 50px;
                height: 50px;
              }
            }
            img.series-image {
              top: unset;
              bottom: -85px;
              right: 15px;
            }
          }

          .details {
            width: 100%;
            .description {
              padding-left: 0;
              max-width: none;
            }
          }
        }

        .podcast-links {
          gap: 20px;
          flex-wrap: wrap;
          justify-content: center;
        }
      }
    }

    @media (max-width: 768px) {
      padding: 45px 25px 25px;
      .content-wrapper {
        .main-hero {
          .media-wrapper {
            img.series-image {
              width: 60%;
              right: 50%;
              transform: translateX(50%);
              bottom: -105px;
            }
          }

          .details {
            padding-top: 75px;
          }
        }

        .podcast-links {
          padding-top: 25px;
        }

      }
    }
  }

  .featured-episodes {
    padding: 85px 65px 0;
    background-color: #EEEFF0;
    overflow: hidden;

    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;
      position: relative;
      
      h3 {
        margin-bottom: 35px;
      }

      .swiper {
        overflow: visible;
      }

      .swiper-slide {
        border: solid 1px #707070;
        .media-wrapper {
          aspect-ratio: 1.8;
          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
          }
        }

        .details {
          background-color: white;
          padding: 30px 25px;

          h5 {
            font-family: 'Montserrat', sans-serif;
            font-size: 14px;
            line-height: 14px;
            font-weight: 800;
            color: #78828A;
            margin-bottom: 5px;
          }

          h3 {
            font-size: 25px;
            line-height: 30px;
            font-weight: 800;
            img {
              position: relative;
              margin-left: 10px;
              bottom: 2px;
            }
          }
        }
      }

      .swiper-pagination {
        position: relative;
        margin-top: 45px;
        display: flex;
        justify-content: center;
        gap: 12px;

        .swiper-pagination-bullet {
          background: transparent;
          border: solid 1px #299c8f;
          width: 15px;
          height: 15px;
          opacity: 1;

          &.swiper-pagination-bullet-active {
            background-color: #299c8f;
          }
        }
      }

      .swiper-controls {
        .swiper-button-prev {
          left: -50px;
          &:after {
            display: none;
          }
        }

        .swiper-button-next {
          right: -50px;
          img {
            transform: scaleX(-1);
          }
          &:after { 
            display: none; 
          }
        }
      }

    }

    @media (max-width: 1024px) {
      padding: 65px 25px 0;
    }

    @media (max-width: 768px) {
      padding: 45px 25px 25px;
      .content-wrapper {
        h3 {
          margin-bottom: 25px;
        }
        .swiper-slide {
          .details {
            h3 {
              font-size: 18px;
              line-height: 22px;
            }
          }
        }
        .swiper-pagination {
          gap: 2px;
          margin-top: 35px;

          .swiper-pagination-bullet {
            width: 12px;
            height: 12px;
          }
        }
      }
    }


  }

  .separator {
    background-color: white;
    height: 150px;
    img {
      width: 100%;
      height: 100%;
    }

    @media (max-width: 1024px) {
      height: 70px;
    }

    @media (max-width: 768px) {
      height: 45px;
    }
  }

  .series-episodes {
    padding: 85px 65px;

    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;
      .heading {
        h2 {
          margin-bottom: 45px;
        }
      }
      .single-episode {
        border: solid 2px #CDD1D4;
        border-top: none;
        position: relative;
        display: flex;
        padding: 15px 35px;

        &:first-of-type {
          border-top: solid 2px #CDD1D4;
        }

        &.is-hidden {
          display: none;
        }

        p.episode-number {
          padding-bottom: 0;
          font-size: 14px;
          line-height: 14px;
          margin-bottom: 5px;
          color: #78828A;
          font-weight: 600;
        }

        h4 {
          font-size: 20px;
          line-height: 24px;
          margin: 0;
        }

        .play-icon {
          width: 43px;
          height: 43px;
          border: solid 1px #299c8f;
          border-radius: 50px;
          position: absolute;
          right: 25px;
          top: 16px;

          img {
            position: absolute;
            width: 13px;
            top: 13px;
            left: 16px;
          }
        }
      }

      .view-more-wrapper {
        margin-top: 35px;
        display: flex;
        justify-content: center;
      }
    }

    @media (max-width: 1024px) {
      padding: 65px 25px;
    }

    @media (max-width: 768px) {
      padding: 45px 25px;

      .content-wrapper {
        .heading {
          h2 {
            margin-bottom: 25px;
          }
        }

        .single-episode {
          padding: 15px 20px;
          h4 {
            font-size: 16px;
            line-height: 20px;
          }

          p.episode-number {
            font-size: 12px;
          }
          .left {
            padding-right: 65px;
          }

          .play-icon {
            width: 30px;
            height: 30px;
            top: 50%;
            transform: translateY(-50%);
            right: 15px;

            img {
              top: 6px;
              left: 10px;
            }
          }
        }
      }
    }
  }

  .subscribe {
    position: relative;
    padding: 65px;
    img.graphic {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      z-index: 0;
    }

    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;
      position: relative;
      z-index: 1;
      background-size: cover;
      display: flex;
      height: 185px;
      padding: 65px;

      
      &:before {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #299c8f;
        z-index: 1;
        opacity: 0.8;
      }

      h3 {
        color: white;
        margin: 0;
        position: relative;
        z-index: 1;
      }
    }
  }
}

body.single-series {
  .hero {
    padding: 85px 45px 85px;

      .heading {
        max-width: 1600px;
        margin: 0 auto;
        margin-bottom: 65px;
        h2 {
          text-align: center;
          margin: 0;
        }
      }

    .content-wrapper {
      display: flex;
      gap: 65px;
      max-width: 1600px;
      margin: 0 auto;

      .active-sermon {
        width: 65%;
        
        .video-wrapper {
          iframe {
            width: 100%;
          }
        }

        .details {
          padding: 25px 0 0 0;

          h1 {
            font-size: 32px;
            line-height: 36px;
          }
        }
      }

      .sermon-list {
        width: 35%;
        h3 {
          margin-bottom: 25px;
          font-size: 28px;
          line-height: 38px;
        }

        .sermons {
          max-height: 600px;
          overflow: scroll;
          display: flex;
          flex-direction: column-reverse;
        }

        .single-sermon {
          display: flex;
          margin-bottom: 20px;
          cursor: pointer;
          .image {
            width: 40%;
            aspect-ratio: 1.5;

            img {
              width: 100%;
              height: 100%;
              object-fit: cover;
              display: block;
            }
          }

          .details {
            width: 60%;
            background-color: white;
            display: flex;
            flex-direction: column;
            justify-content: center;
            padding: 25px 20px;

            h6 {
              display: none;
            }

            h5 {
              font-size: 18px;
              font-family: 'Montserrat', sans-serif;
              font-weight: 800;
              line-height: 18px;
              margin: 0;
            }
          }

          &.is-active {
            .details {
              h6 {
                font-family: 'Montserrat', sans-serif;
                display: block;
                font-size: 14px;
                line-height: 14px;
                font-weight: 800;
                letter-spacing: 0;
              }
            }
          }
        }


      }
    }
  }

  .related-blogs {
    background-color: #EEEFF0;
    padding: 65px 65px 65px 65px;

    h2 {
      font-size: 36px;
      line-height: 38px;
      margin-bottom: 25px;
    }

    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;

      .swiper {
        overflow: visible;
      }

      .swiper-slide {
        border: solid 2px #cacaca;

        .card-media {
          aspect-ratio: 2;
          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
          }
        }

        .card-content {
          background: white;
          padding: 25px 35px;
          min-height: 200px;
          position: relative;

          h3 {
            font-family: 'Montserrat', sans-serif;
            font-size: 22px;
            font-weight: 800;
            line-height: 28px;
          }

          p.link {
            padding: 0;
            position: absolute;
            bottom: 25px;
            left: 35px;
            color: black;
            font-family: 'Montserrat', sans-serif;
            font-weight: 600;

            &:after {
              content:"\f0da";
              margin-left: 10px;
              color:#299c8f;
              font-family:'FontAwesome';
            }

            img {
              position: relative;
              margin-left: 7px;
            }
          }
        }

      }

      .swiper-pagination {
        position: relative;
        margin-top: 45px;
        display: flex;
        justify-content: center;
        gap: 12px;

        .swiper-pagination-bullet {
          background: transparent;
          border: solid 1px #299c8f;
          width: 15px;
          height: 15px;
          opacity: 1;

          &.swiper-pagination-bullet-active {
            background-color: #299c8f;
          }
        }
      }

      .swiper-controls {
        .swiper-button-prev {
          left: -50px;
          &:after {
            display: none;
          }
        }

        .swiper-button-next {
          right: -50px;
          img {
            transform: scaleX(-1);
          }
          &:after { 
            display: none; 
          }
        }
      }
    }
  }

  .separator {
    background-color: white;
    height: 150px;
    img {
      width: 100%;
      height: 100%;
    }
  }

  .all-series {
    padding: 85px 65px;
    .content-wrapper {
      max-width: 1600px;
      margin: 0 auto;
      h2 {
        font-size: 36px;
        line-height: 38px;
        margin-bottom: 25px;
      }
      .grid {
        display: grid;
        grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
        gap: 25px;

        .grid-item { 
          border: solid 2px #cacaca;
          .image {
            aspect-ratio: 1.5;
            img {
              width: 100%;
              height: 100%;
              object-fit: cover;
            }
          }

          .details {
            padding: 25px;
            h4 {
              font-size: 22px;
              line-height: 28px;
              margin: 0;

              img {
                position: relative;
                left: 10px;
                bottom: 2px;
              }
            }
          }
        }
      }
    }
  }

  @media (max-width: 1024px) {
    .hero { 
      padding: 45px 25px 45px; 
      .heading {
        margin-bottoM: 45px;
        h2 {
          font-size: 34px;
          line-height: 40px;
        }
      }
      .content-wrapper {
        gap: 25px;

        .sermon-list {
          h3 {
            font-size: 24px;
            line-height: 24px;
            margin-bottom: 15px;
          }
          .single-sermon {
            margin-bottom: 10px;
            .image {
              width: 20%;
            }
            .details {
              width: 80%;
              padding: 20px 10px;
              h5 {
                font-size: 14px;
              }
            }
          }
        }
      }
    }

    .related-blogs {
      padding: 45px 25px 35px 25px;
      .content-wrapper {
        h2 {
          font-size: 32px;
          line-height: 36px;
          margin-bottom: 20px;
        }

        .swiper-slide {
          .card-content {
            padding: 20px;
            min-height: 175px;
            h3 {
              font-size: 18px;
              line-height: 22px;
            }
            p.link {
              left: 20px;
              bottom: 20px;
            }
          }
        }
        .swiper-controls {
          display: none;
        }
      }
    }

    .separator {
      height: 70px;
    }

    .all-series {
      padding: 65px 25px;
      .content-wrapper {
        h2 {
          font-size: 32px;
          line-height: 36px;
          margin-bottom: 20px;
        }

        .grid {
          grid-template-columns: minmax(0,1fr) minmax(0,1fr);
        }
      }
    }
  }

  @media (max-width: 768px) {
    .hero {
      padding: 25px;

      .heading {
        margin-bottom: 25px;
        h2 {
          font-size: 28px;
          line-height: 34px;
        }
      }
      .content-wrapper {
        flex-direction: column;
        .active-sermon {
          width: 100%;
          .details {
            padding: 15px 0 0;
            h1 {
              font-size: 22px;
              line-height: 28px;
            }
          }
        }

        .sermon-list {
          width: 100%;
          h3 {
            font-size: 20px;
          }
        }
      }
    }

    .related-blogs {
      padding: 45px 25px 25px 25px;
      .content-wrapper {
        h2 {
          font-size: 28px;
          line-height: 28px;
          margin-bottom: 15px;
        }

        .swiper-slide {
          .card-content {
            padding: 15px;
            min-height: 145px;
            h3 {
              font-size: 18px;
              line-height: 22px;
            }
            p.link {
              left: 15px;
              bottom: 15px;
            }
          }
        }
        .swiper-controls {
          display: none;
        }
        
        .swiper-pagination {
          gap: 2px;
          margin-top: 35px;

          .swiper-pagination-bullet {
            width: 12px;
            height: 12px;
          }
        }
      }
    }

    .separator {
      height: 45px;
    }

    .all-series {
      padding: 45px 25px;
      .content-wrapper {
        h2 {
          font-size: 28px;
          line-height: 28px;
        }

        .grid {
          grid-template-columns: minmax(0,1fr);
        }
      }
    }
  }
}

.video-popup-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.75);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  display: none;

  &.active {
    display: flex;
  }

  .close-button {
    position: absolute;
    top: 45px;
    right: 20px;
    width: 25px;
    height: 25px;
    cursor: pointer;

    img {
      width: 100%;
      display: block;
    }
  }

  .video-wrapper {
    width: 90%;
    max-width: 1080px;
    aspect-ratio: 16 / 9;

    iframe {
      width: 100% !important;
      height: 100% !important;
      display: block;
      border: 0;
    }
  }
}

mpp-user-login > a {
  display: none !important;
}

/* Campus Podcast Dropdown — global, reusable WPBakery block */
.campus-dropdown {
  select {
    background-color: #299c8f;
    color: white;
    font-weight: 600;
    text-transform: uppercase;
    width: auto;
    border-radius: 50px;
    padding: 10px 15px;

    option {
      color: white;

      &:hover {
        color: white;
      }
    }
  }

  .campus-podcast-links {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 20px;
    margin-top: 20px;
  }
}

/* Search results — equal-height cards with content-type labels.
   NB: the container is intentionally NOT #search-results — that id triggers
   Salient's isotope/packery init (init.js), which absolutely-positions the
   cards and collapses this grid. Renaming it opts out of that JS entirely. */
body.search #woodside-search-results.woodside-search-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 40px;
  margin-bottom: 50px;

  .result {
    display: flex;
    width: auto;
    height: 100%;
    margin: 0;
    padding: 0;
    border: none;
    opacity: 1;

    &:before,
    &:after {
      display: none;
    }

    .inner-wrap {
      display: flex;
      flex-direction: column;
      width: 100%;
      height: 100%;
      overflow: hidden;
      background-color: #fff;
      border-radius: 8px;
      box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
    }

    .result-thumb {
      display: block;
      aspect-ratio: 16 / 9;
      overflow: hidden;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }

    /* Site-logo fallback when a result has no featured image — contain and
       centre the logo on a neutral field rather than cropping it. */
    .result-thumb--placeholder {
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: #f4f4f4;

      img {
        width: auto;
        height: auto;
        max-width: 55%;
        max-height: 55%;
        object-fit: contain;
      }
    }

    .result-content {
      display: flex;
      flex-direction: column;
      flex: 1 1 auto;
      padding: 25px 25px 30px;
    }

    .result-type {
      display: inline-block;
      align-self: flex-start;
      margin-bottom: 10px;
      color: #299c8f;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    h2.title {
      margin: 0 0 12px;
      font-size: 22px;
      line-height: 28px;

      a {
        color: inherit;
      }
    }

    .result-excerpt {
      margin: 0;
      /* Clamp so long copy doesn't blow out card height */
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
  }
}


/* ==========================================================================
   TBX top bars — announcement notice + live stream banner
   ==========================================================================

   Both bars are fixed to the top of the window. Reading down the screen the
   stack is: WP admin bar, notice bar, live stream banner, #header-outer.

   Every offset is derived from four custom properties on <body>, so the four
   things that have to move out of the way (the page, the fixed header, the
   off-canvas menu, and the bars themselves) can't drift out of sync:

     --tbx-admin-h    how much of the WP admin bar is currently covering the
                      top of the viewport; 0 when logged out
     --tbx-notice-h   notice bar height, 0 when hidden
     --tbx-live-h     live stream bar height, 0 when hidden
     --tbx-bar-h      fallback height, used until custom.js measures for real

   custom.js maintains all three by measurement. --tbx-notice-h / --tbx-live-h
   mean a closure notice long enough to wrap onto two or three lines pushes
   everything below it down by the right amount instead of being clipped to a
   hardcoded 50px.

   --tbx-admin-h is read off #wpadminbar itself rather than assumed, so the
   bars sit below the admin bar whatever it is doing. The admin bar's own CSS
   and behaviour are left completely untouched: it stays fixed above 600px,
   and below 600px, where WP makes it position:absolute so it scrolls away
   with the page, the measured value counts down to 0 and the bars follow it
   up. Measuring also means a taller-than-standard admin bar (an extra toolbar
   item wrapping to a second row) can't end up overlapping a bar.

   This used to live in Theme Options > Custom CSS. It is here now so it is in
   the repo with the rest of the theme, and so the SCSS-only bits the browser
   was silently dropping ($brand, darken()) are gone. That box still holds the
   old copy and should be emptied — a verbatim backup is in this directory at
   .backup-theme-options-custom-css-2026-09-07.css. Until it is emptied the old
   rules still load, ahead of this file, so a few selectors below are wordier
   than they need to be purely to out-specify them; they are harmless once the
   box is cleared.
   ========================================================================== */

body {
  --tbx-bar-h: 50px;
  --tbx-admin-h: 0px;
  --tbx-notice-h: 0px;
  --tbx-live-h: 0px;

  /* Composites. Declared on the same element as their inputs so the cascade
     resolves each input first (including the inline values custom.js sets)
     and then substitutes. */
  --tbx-bars-h: calc(var(--tbx-notice-h) + var(--tbx-live-h));
  --tbx-top-h: calc(var(--tbx-admin-h) + var(--tbx-notice-h) + var(--tbx-live-h));
}

body.notice-shown { --tbx-notice-h: var(--tbx-bar-h); }
body.show-notice  { --tbx-live-h: var(--tbx-bar-h); }

/* Pre-JS fallbacks matching WP's two stock admin bar heights. custom.js
   replaces these with the measured value as soon as it runs. */
body.admin-bar { --tbx-admin-h: 32px; }

@media screen and (max-width: 782px) {
  body.admin-bar { --tbx-admin-h: 46px; }
}


/* --- shared bar chrome ---------------------------------------------------- */

.tbx-module__notice,
.ws-part__watch-live-banner {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  /* No max-width. A capped fixed bar can't centre itself — margin:0 auto is a
     no-op with auto insets — so the old max-width:1920px left the bar flush
     left with a bare gap on the right on anything wider than 1920px. */
  max-width: none;
  /* Auto rather than a hardcoded 50px: the copy decides the height and
     custom.js reports it back. Also cancels the old height:50px / 80px rules. */
  height: auto;
  min-height: var(--tbx-bar-h);
  margin: 0;
  /* Above #header-outer (9999), below #wpadminbar (99999) so the admin bar
     can never end up buried behind a bar. */
  z-index: 10000;
  color: #fff;

  > a {
    display: block;
    position: relative;
    z-index: 1;
    width: 100%;
    height: auto;
    min-height: var(--tbx-bar-h);
    color: inherit;
    text-decoration: none;
  }

  /* Scoped flex centring. The generic .vertical-center table below is left
     alone because the Ministry Platform views use it too. */
  .vertical-center {
    display: flex;
    width: 100%;
    min-height: var(--tbx-bar-h);

    > .cell {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
    }
  }

  .inner-content-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    text-align: center;
  }
}

body.notice-shown .tbx-module__notice,
body.show-notice .ws-part__watch-live-banner {
  display: block;
}

.tbx-module__notice { top: var(--tbx-admin-h); }

.ws-part__watch-live-banner,
body.notice-shown.show-notice .ws-part__watch-live-banner {
  top: calc(var(--tbx-admin-h) + var(--tbx-notice-h));
}


/* --- generic vertical centring helper ------------------------------------ */
/* Used by the Ministry Platform event / group / opportunity cards as well as
   the bars, so it keeps its original table behaviour. */

.vertical-center {
  display: table;
  width: 100%;
  height: 100%;

  .cell {
    display: table-cell;
    vertical-align: middle;
  }

  &.bottom .cell {
    vertical-align: bottom;
  }
}


/* --- live stream banner --------------------------------------------------- */

.ws-part__watch-live-banner {
  background: #299c8f;
  text-align: center;
  text-transform: uppercase;

  .inner-content-wrap {
    gap: 2px 25px;
    padding: 8px 20px;
  }

  span.watch-live {
    display: inline-block;
    /* The 25px separation is the flex gap now. */
    margin-right: 0;

    &:before,
    &:after {
      content: '';
      display: inline-block;
      vertical-align: middle;
      width: 8px;
      height: 24px;
      margin-right: 10px;
      /* Inlined rather than pointing at /wp-content/uploads — the old rule
         hardcoded the Kinsta staging hostname, which 404s anywhere else. */
      background: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='8.315'%20height='24.482'%20viewBox='0%200%208.315%2024.482'%3e%3cg%20transform='translate(-2965.092%2024547.732)'%3e%3cpath%20d='M1.263,7.353A1.263,1.263,0,0,0,2.525,6.091V1.263A1.263,1.263,0,0,0,0,1.263V6.091A1.263,1.263,0,0,0,1.263,7.353Zm0,0'%20transform='translate(2965.092%20-24534.229)%20rotate(-90)'%20fill='%231c2b39'/%3e%3cpath%20d='M3.784,5.569A1.263,1.263,0,0,0,5.569,3.783L2.156.37A1.263,1.263,0,0,0,.37,2.156Zm0,0'%20transform='translate(2967.468%20-24523.25)%20rotate(-90)'%20fill='%231c2b39'/%3e%3cpath%20d='M1.263,5.939a1.259,1.259,0,0,0,.893-.37L5.57,2.156A1.263,1.263,0,0,0,3.784.37L.37,3.783a1.263,1.263,0,0,0,.893,2.155Zm0,0'%20transform='translate(2967.467%20-24541.793)%20rotate(-90)'%20fill='%231c2b39'/%3e%3c/g%3e%3c/svg%3e") center no-repeat;
      background-size: contain;
    }

    &:after {
      margin-right: 0;
      margin-left: 10px;
      transform: rotate(180deg);
    }
  }

  span span { text-decoration: underline; }
}

@media screen and (max-width: 500px) {
  .ws-part__watch-live-banner span:last-child { display: none; }
}


/* --- announcement / closure notice ---------------------------------------- */

.tbx-module__notice {
  &.brand   { background: #299c8f; }
  &.warning { background: red; }

  .inner-content-wrap {
    gap: 2px 15px;
    /* Symmetric padding: the copy stays optically centred at every width
       while still clearing the close button on the right. */
    padding: 10px 50px;
    color: #fff;

    > span,
    p {
      margin: 0;
    }

    /* Was absolutely positioned against the right edge below 1000px, which is
       what pulled the copy off-centre. A flex item at every width now. */
    .button-wrap {
      position: static;
      margin: 0;
      transform: none;
    }

    .notice-btn {
      color: #fff;
      text-transform: uppercase;
      text-decoration: underline;
    }
  }

  .close-notice {
    display: block;
    width: 20px;
    height: 20px;
    position: absolute;
    top: 50%;
    right: 20px;
    z-index: 2;
    transform: translateY(-50%);
    cursor: pointer;

    &:before,
    &:after {
      content: '';
      display: block;
      width: 100%;
      height: 2px;
      position: absolute;
      top: 50%;
      left: 50%;
      transform-origin: 50% 50%;
      transform: translate(-50%, -50%) rotate(45deg);
      background: #fff;
      transition: background .3s;
    }

    &:after {
      transform: translate(-50%, -50%) rotate(-45deg);
    }

    &:hover:before,
    &:hover:after {
      background: #b3b3b3;
    }
  }
}

@media screen and (max-width: 1000px) {
  .tbx-module__notice .inner-content-wrap {
    padding: 10px 46px;
    font-size: 15px;
  }
}

@media screen and (max-width: 600px) {
  /* The whole bar is still the link — the separate CTA is just too cramped. */
  .tbx-module__notice .inner-content-wrap .button-wrap { display: none; }
}


/* --- making room for the bars --------------------------------------------- */

body.notice-shown,
body.show-notice,
body.notice-shown.show-notice {
  margin-top: var(--tbx-bars-h);
}

/* Salient sizes the body to the viewport; keep that honest now that the body
   starts lower down, otherwise every page gains a phantom scroll. */
body.notice-shown:not(.nectar-no-flex-height),
body.show-notice:not(.nectar-no-flex-height) {
  min-height: calc(100vh - var(--tbx-bars-h));
}

@media only screen and (min-width: 1000px) {
  body.admin-bar.notice-shown:not(.nectar-no-flex-height),
  body.admin-bar.show-notice:not(.nectar-no-flex-height) {
    min-height: calc(100vh - var(--tbx-bars-h) - 32px);
  }
}

/* !important because Salient's header script rewrites #header-outer's inline
   top on every animation frame while the admin bar is present. The .small-nav
   and both-bars permutations are spelled out only to out-specify the old
   Theme Options rules; they all resolve to the same offset. */
body.notice-shown #header-outer,
body.notice-shown #header-outer.small-nav,
body.show-notice #header-outer,
body.show-notice #header-outer.small-nav,
body.notice-shown.show-notice #header-outer,
body.notice-shown.show-notice #header-outer.small-nav {
  top: var(--tbx-top-h) !important;
}


/* --- off-canvas / mobile menu --------------------------------------------- */

/* The menu is a fixed, full-height overlay pinned to top:0, so with a bar on
   screen its first menu items sat underneath the bars. Inset it instead, and
   drop Salient's admin-bar padding-top since the offset now covers it. */
body.notice-shown #slide-out-widget-area,
body.show-notice #slide-out-widget-area {
  top: var(--tbx-top-h) !important;
  height: calc(100% - var(--tbx-top-h)) !important;
  padding-top: 0 !important;
}

/* Salient centres the menu with margin:auto inside a height:100% flex column.
   Once the menu is taller than the space it has — which it is on a phone with
   eight top-level items, and doubly so with a bar eating 50-100px — the
   overflow escapes both ends and the top items can't be scrolled back to.
   min-height lets the wrapper grow so #slide-out-widget-area's own scroll
   reaches all of it; identical rendering when the menu does fit. */
body #slide-out-widget-area.fullscreen-split .inner-wrap {
  height: auto;
  min-height: 100%;
}


/* --- off-canvas menu: Ministry Platform login button ---------------------- */

/* custom.js moves the Login item to the end of the off-canvas menu and swaps
   its contents for the <mpp-user-login> component. The component styles itself
   inside its shadow root at a fixed 14px, but its host element is inline, so
   without resetting the typography here it would sit in a line box built from
   the 40px+ off-canvas menu font and float in a lot of empty space. */
#slide-out-widget-area .off-canvas-menu-container li.login-target {
  /* Anchor for the component's logged-in dropdown, which positions absolutely
     and would otherwise resolve against a distant ancestor. */
  position: relative;
  margin-top: 25px;
  font-size: 16px;
  line-height: 1;
}

#slide-out-widget-area .off-canvas-menu-container li.login-target mpp-user-login {
  display: inline-block;
}
