
/* smooth-scroll */
/*
@media (min-width: 768px) {
  html, body {
    height: 100%;
    margin: 0;
    overflow: hidden;
  }
  #scroll-container {
    height: 100vh;
    overflow: hidden;
  }
}
*/
/*  /smooth-scroll */

@media (prefers-reduced-motion: no-preference) {
    :root {
        scroll-behavior: unset;
    }
}

html {
  scroll-behavior: unset;
}

/* offset for all anchor links */
:target { scroll-margin-top: 200px; }


.contain {
  padding-left: 16px;
  padding-right: 16px;
  margin: 0 auto;

  @media (min-width: 768px) {
    padding-left: 24px;
    padding-right: 24px;
  }

  @media (min-width: 1200px) {
    padding-left: 122px;
    padding-right: 122px;
  }

  @media (min-width: 1600px) {
    padding-left: 220px;
    padding-right: 220px;
  }

  @media (min-width: 1900px) {
    padding-left: 300px;
    padding-right: 300px;
  }

  @media (min-width: 2400px) {
    padding-left: 20vw;
    padding-right: 20vw;
  }
}

.contain-left {
  padding-left: 16px;

  @media (min-width: 768px) {
    padding-left: 24px;
  }

  @media (min-width: 1200px) {
    padding-left: 122px;
  }

  @media (min-width: 1600px) {
    padding-left: 220px;
  }

  @media (min-width: 1900px) {
    padding-left: 300px;
  }

  @media (min-width: 2400px) {
    padding-left: 20vw;
  }
}

.contain-lg {
  padding-left: 16px;
  padding-right: 16px;
  margin: 0 auto;

  @media (min-width: 768px) {
    padding-left: 24px;
    padding-right: 24px;
  }

  @media (min-width: 1200px) {
    padding-left: 80px;
    padding-right: 80px;
  }

  @media (min-width: 1600px) {
    padding-left: 100px;
    padding-right: 100px;
  }

  @media (min-width: 1900px) {
    padding-left: 200px;
    padding-right: 200px;
  }

  @media (min-width: 2400px) {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}




 
.button.primary {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  padding: 16px 24px;
  border-radius: 100px;
  appearance: none;
  border: 0;

  background: black;
  color: white;

  font-family: 'source-sans-pro', sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.2s ease-in-out;

  &::after {
    content: '';
    position: relative;
    display: block;
    width: 18px;
    height: 13px;
    overflow: hidden;
    background: url('/v3/template/icon-arrow-right.svg') no-repeat center center;
    transition: all 0.2s ease-in-out;
  }

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

    &::after {
      transform: translateX(4px);
      opacity: 0.5;
    }
  }

  &:active {
    background: var(--color-teal-dark);
    color: white;
  }

  &:focus {
    outline: 2px solid black;
  }

  &[disabled] {
    background: var(--color-grey);
    color: white;
    pointer-events: none;
    cursor: default;

    &::after {
      display: none;
    }
  }

  &.reverse::before {
    content: '';
    position: relative;
    display: block;
    width: 18px;
    height: 13px;
    overflow: hidden;
    background: url('/v3/template/icon-arrow-right.svg') no-repeat center center;
    transition: all 0.2s ease-in-out;
    transform: rotate(180deg);
  }  
  &.reverse:hover::before {
    transform: translateX(-4px) rotate(180deg);
    opacity: 0.5;
  }
  &.reverse::after {
    display: none;
  }


}
.button.secondary,
.button.underline {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 8px 0;

  color: black;

  font-family: 'source-sans-pro', sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;

  overflow: hidden;
  
  transition: all 0.2s ease-in-out;

  &::after {
    content: '';
    position: relative;
    left: 0;
    display: block;
    width: 100%;
    overflow: hidden;
    height: 1px;
    background: var(--color-teal);
    transition: all 0.2s ease-in-out;
  }

  &:hover,
  &:active {
    padding: 6px 0 10px 0;
  }

  &:hover::after,
  &:active::after {
    left: 99%; /* 100% causes issue with clipping on 'most popular' tag */
    opacity: 0;
  }
}
.button.underline {
  font-size: 16px;
}
.button.small {

  padding: 12px 0;
  transition: all 0.2s ease-in-out;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 600;
  text-decoration: none;
  padding: 8px 16px;
  border-radius: 100px;
  border: 0;
  transition: all 0.2s ease-in-out;

  color: white;
  background: var(--color-teal);

  &:hover,
  &:active {
    background: var(--color-teal-dark);
  }
}
.button.outline {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  padding: 8px 12px;
  border-radius: 100px;
  border: 1px solid var(--color-grey-light);
  transition: all 0.2s ease-in-out;
  appearance: none;
  background: transparent;

  &:hover {
    background: black;
    color: white;
  }
}
.prayer-button {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
  padding: 8px 16px 8px 8px;
  appearance: none;
  background: rgba(255, 255, 255, 0.2);
  border: 0;
  color: white;
  border-radius: 100px;
  text-decoration: none;

  font-size: 12px;
  font-weight: 700;
}


.alert {
  border-radius: 16px;
}
.alert-success {
    --bs-alert-color: white;
    --bs-alert-bg: var(--color-teal);
    --bs-alert-border-color: var(--color-teal);
    --bs-alert-link-color: white;
}
.alert-danger {
    --bs-alert-color: white;
    --bs-alert-bg: var(--color-red);
    --bs-alert-border-color: var(--color-red);
    --bs-alert-link-color: white;
}
.alert-warning {
    --bs-alert-color: black;
    --bs-alert-bg: #fbbc04;
    --bs-alert-border-color: #fbbc04;
    --bs-alert-link-color: black;
}


ul.bullets {

  display: inline-block;
  list-style: none;
  padding: 0;
  margin: 0;
  li {
    padding: 10px 24px 10px 16px;
    background: url('/v3/template/bullet.png') no-repeat center left;
    background-size: 6px;
    font-weight: 700;
    border-bottom: 1px solid var(--color-cream);
  }
  li:last-child {
    border-bottom: none;
  }

  &.bullets-large {
    li {
      padding: 10px 24px 10px 32px;
      background: url('/v3/template/icon-bullseye.svg') no-repeat center left;
      background-size: 16px;
    }
  }

  &.fa-icon {
    li {
      background: none;
      display: flex;
      align-items: center;
      gap: 16px;
      padding-left: 0;
    }
  }

  &.no-borders {
    li {
      border-bottom: none;
    }
  }

}

.featherlight {
  background: rgba(0, 0, 0, .8) !important;
}

.stats-floater {
  position: relative;
  z-index: 10;
  background: rgba(241, 234, 219, 0.6); 
  /*backdrop-filter: blur(16px); from the design */
  backdrop-filter: blur(8px);
  width: 232px;
  padding: 32px 24px;
  border-top: 4px solid rgba(227, 60, 41, 0.6);
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;

  font-family: 'source-sans-pro', sans-serif;
  font-size: 14px;
  font-weight: 700;

  text-align: center;

  will-change: transform;
  transform: translate3d(var(--floatX, 0px), var(--floatY, 0px), 0);


  .icon {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%) translateY(calc(-50% - 1px));
    width: 56px;
    height: 56px;
    border-radius: 100%;
    overflow: hidden;
    img,svg {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  h3 { 
    font-family: 'interstate', sans-serif;
    font-size: 24px;
    font-weight: 700;
    margin: 0 0 8px 0;
  }

  .content > *:last-child {
    margin-bottom: 0;
  }

  @media (min-width: 1024px) {
    padding: 40px 32px;
    h3 {
      font-size: 32px;
    }
  }

  @media (min-width: 1440px) {
    padding: 52px 40px 40px 40px;
  }

}

.slick-dots {
  position: relative;
  bottom: auto;

  display: flex;
  justify-content: center;
  gap: 8px;


  li {
    margin: 0;
    width: auto;
    height: auto;
  }

  li button {
    padding: 0;
    width: 8px;
    height: 8px;
    border-radius: 100%;
    background: var(--color-grey-light);
    border: none;
    margin: 0;
    transition: all 0.3s ease;

    &::before {
      display: none; /* Hide the default dot */
    }

  }


  li.slick-active button {
    background-color: black;
    opacity: 1;
  }

}







section.alert-bar {

  position: relative;
  z-index: 100;

  overflow-x: hidden;
  padding: 14px 0;
  text-align: center;
  font-size: 14px;

  i { 
    position: relative;
    top: 2px;
    font-size: 18px; 
    margin-right: 8px; 
  }

  background: var(--color-teal);
  color: white;
  a { color: white; text-decoration: underline; }

}






header.page-header.mobile {
  
  @media (min-width: 768px) {
    display: none;
  }

  position: sticky;
  top: 0;
  z-index: 10;
  background: white;
  
  * { 
    transition: all 0.2s ease-in-out;
  }

  .main.contain {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;

    z-index: 10;
    background: white;

    padding-top: 12px;
    padding-bottom: 12px;

    .logo {
      display: block;
      position: absolute;
    

      left: 50%;
      transform: translateX(-50%);

      transition: all 0.2s ease-in-out;

      background: url('/v3/template/logo.svg') no-repeat center center;
      background-size: cover;

      aspect-ratio: 110 / 112;
      height: 64px;
      bottom: -22px;

    }
    .logo.scrolled {
      background: url('/v3/template/logo-compact.svg') no-repeat center center;
      aspect-ratio: 1;
      height: 70px;
      bottom: -23px;
      opacity: 0;
    }

    button.menu-toggle {
      border: 0;
      appearance: none;
      background: url('/v3/template/icon-hamburuger.svg') no-repeat center center;
      width: 12px;
      height: 17px;
      padding: 16px;
      margin-right: -8px;
      border-radius: 4px;
      opacity: 1;
    }    

  }

  .line {
    position: relative;
    border-bottom: 1px solid var(--color-grey-light);
    z-index: 5;
  }

  &.alertbar-enabled.open {
    /* .letstalk {
      opacity: 0;
    } */
  }

  &.open {
    

    .main.contain {
      background: transparent;
      color: white;

      button.menu-toggle {
        background: url('/v3/template/icon-close-white.svg') no-repeat center center;    
      }
    }
    .line {
      border-color: transparent;
      
    }
  }



  .menus {

    .contain { 
      width: 100%;
    }

    .prayer-button {
      padding: 16px;
      font-size: 14px;
    }

    .level2 {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh; /* fallback */
      height: 100dvh;
      background: black;
      color: white;

      display: flex;
      flex-direction: column;
      justify-content: space-between;

      transform: translateX(100%);

      padding-top: 64px;
      padding-bottom: 16px;

      .menu {
        display: flex;
        flex-direction: column;
        a {
          font-size: 24px;
          font-weight: 700;
          text-decoration: none;
          color: white;
          padding: 16px 16px;

          display: flex;
          align-items: center;

          svg {
            position: relative;
            top: 1px;
            margin-left: 16px;
            width: 16px;
            height: 13px;
            margin-bottom: 0;
            transform: rotate(-90deg);
          }

        }
        a.small {
          font-size: 16px;
        }
        a:not(.has-mega):focus,
        a:not(.has-mega):hover {
          background-color: rgba(255,255,255,0.2);
        }
        hr {
          position: relative;
          margin: 0;
          color: #333333;
          opacity: 1;
        }
      }

    }

    .level3 {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh; /* fallback */
      height: 100dvh;
      background: black;
      color: white;

      transform: translateX(100%);

      padding-top: 64px;

      display: flex;
      flex-direction: column;

      .back {

        a {
          font-size: 24px;
          font-weight: 700;
          text-decoration: none;
          color: white;
          padding: 24px 16px 24px 0;

          display: flex;
          align-items: center;

          svg {
            position: relative;
            top: 1px;
            margin-right: 16px;
            width: 16px;
            height: 13px;
            margin-bottom: 0;
            transform: rotate(90deg);
          }

        }
      }

      .grid {
        flex-grow: 1;
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-auto-rows: 1fr;
        gap: 1px;
        background: #333333;
        border-top: 1px solid #333333;

        > div {
          background: black;
          padding: 16px;
        }

        > div.image {
          padding: 0;
          display: flex;
          align-items: center;
          background-size: 100% auto;
          background-position: top center;
          background-repeat: no-repeat;
        }

      }    

      
      h3 {
        font-size: 20px;
        margin: 0 0 8px 0;
        padding-bottom: 8px;
        border-bottom: 1px solid #333;
        color: white;
      }

      p {
        font-size: 12px;
        color: #BCBEC0;        
        margin-bottom: 24px;
      }

      .button.secondary {
        color: white;
      }
      
    }
    .level3.open {
      transform: translateX(0);
    }
  }

  &.open {

    .main.contain .logo:not(.scrolled) {
      opacity: 0;
    }
    .main.contain .logo.scrolled {
      opacity: 1;
      bottom: -16px;
    }

    .menus .level2 {
      transform: translateX(0);
    }
  }




}
body.scrolled header.page-header.mobile {
  .menu-main a {
    padding-top: 16px;
    padding-bottom: 14px; /* 2px for bottom border */
  }
  .main.contain {
    padding-top: 6px;
    padding-bottom: 6px;
    .logo:not(.scrolled) {
      opacity: 0;
    }
    .logo.scrolled {
      opacity: 1;
    }
  }
}
/* oof -- tweak for mobile menu open and page scrolled */
body.scrolled header.page-header.mobile.open {
  .main.contain .logo.scrolled {
    bottom: -23px;
  }
}




header.page-header.desktop {

  display: none;
  @media (min-width: 768px) {
    display: block;
  }

  background: white;
  border-bottom: 1px solid var(--color-grey-light);

  position: sticky;
  top: 0;
  z-index: 10;

  > .contain {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 10;
    background: white;
  }

  nav.menu-main {
    display: flex;
    gap: 24px;

    transition: all 0.3s ease-in-out;
    position: relative;

    a {
      font-family: 'source-sans-pro', sans-serif;
      font-size: 14px;
      font-weight: 700;
      text-decoration: none;
      color: black;
      display: block;
      padding: 24px 16px 22px 16px;
      border-bottom: 3px solid transparent;
      transition: all 0.3s ease-in-out;
    }
    a.active,
    a.active-override,
    a:hover {
      border-bottom-color: var(--color-teal);
    }

    a:first-child {
      padding-left: 0;
    }

    a.mega {
      background: url('/v3/template/icon-chevron-down.svg') no-repeat center right;
      /*padding-right: 32px;*/
    }


    @media (max-width: 1199px) {
      left: 96px;
      gap: 16px;
      a {
        padding: 24px 8px 22px 8px;
      }
      a.mega {
        background-position: center right;
        padding-right: 16px; 
      }
    }

  }

  .mega-menus {

    position: absolute;
    width: 100%;
    z-index: 9;

    margin-top: 1px;
    background: white;

    transition: all 0.3s ease-in-out;
    transform: translateY(-100%);
    opacity: 0;

    &.active {
      transform: translateY(0);
      opacity: 1;
    }

    .mega-menu {




      .contain {
        display: block;
      }



      .elements {
        display: grid;

        grid-template-columns: repeat(3, 1fr);

        column-gap: 40px;
        row-gap: 16px;


        .element.services {
          grid-column: span 3;

          display: flex;
          flex-direction: column;
          justify-content: space-between;

          .graphic {  
            display: none; 
          }
        }

        .graphic {
          position: absolute;
          transform: translateX(-122px);
          bottom: 0;
        }

        .element {
          position: relative;
          padding-bottom: 64px;

          &.services {
            padding: 64px 0 0 0;
          }
        }

        .icon-container {
          display: flex;
          flex-direction: column;
          gap: 24px;
        }


        @media (min-width: 1200px) {
          grid-template-columns: repeat(4, 1fr);
          column-gap: 64px;

          .element,
          .element.services {
            padding: 96px 0 64px 0;
          }
          .element.services {
            grid-column: span 1;
  
            margin-top: -48px;
          
            .graphic {
              display: block;
              overflow: hidden;
              img {
                /*margin-bottom: -77px;*/
              }
            }
          }
          .icon-container {
            flex-direction: row;
          }
        }

        @media (min-width: 1400px) {
          .element,
          .element.services {
            padding: 122px 0 80px 0;
          }
        }

        @media (min-width: 1600px) {
          .element,
          .element.services {
            padding: 150px 0 96px 0;
          }            
        }

        @media (min-width: 2500px) {
          .element,
          .element.services {
            padding: 150px 0 120px 0;
          }            
        }

      }

      h2 {
        font-family: 'interstate', sans-serif;
        font-size: 32px;
        font-weight: 700;
      }

      h3 {
        font-size: 24px;
        font-weight: 700;
        padding-bottom: 16px;
        border-bottom: 1px solid black;
        margin-bottom: 16px;
      }

      a.explore {
        display: inline-block;
        font-family: 'source-sans-pro', sans-serif;
        font-size: 14px;
        font-weight: 700;
        text-decoration: none;
        color: black;
        padding: 8px 0;
        border-bottom: 1px solid var(--color-teal);
      }


    }

  }

  .logo {
    display: block;
    position: absolute;
   
    z-index: 10;

    left: 50%;
    transform: translateX(-50%);

    transition: all 0.2s ease-in-out;

    background: url('/v3/template/logo.svg') no-repeat center center;
    background-size: cover;

    aspect-ratio: 110 / 112;


    height: 80px;
    bottom: -16px;

    @media (max-width: 1199px) {
      left: 16px;
      transform: translateX(0);
      bottom: -16px;
      height: 80px;
    }

    @media (min-width: 1440px) {
      height: 112px;
      bottom: -52px;
    }




  }

  .letstalk {
    a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      font-weight: 600;
      text-decoration: none;
      padding: 8px 24px;
      border-radius: 100px;
      transition: all 0.2s ease-in-out;

      color: white;
      background: var(--color-teal);
    }
    a:hover,
    a:active {
      background: var(--color-teal-dark);
    }
  }

}
.mega-menu-overlay-desktop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9;
  opacity: 0.8;
  background: var(--color-cream);

  display: none; 
  

  .radial {
    position: relative;
    width: 80%;
    margin: 0 auto;
    aspect-ratio: 1;
    background: #00A9A1;
    background: radial-gradient(circle,rgba(0, 169, 161, 1) -40%, rgba(241, 234, 219, 0) 60%);
    opacity: 0.5;
    top: -40%;
  }

}
body.scrolled header.page-header.desktop {
  
  @media (min-width: 1024px) {

    .menu-main a {
      padding-top: 16px;
      padding-bottom: 14px; /* 2px for bottom border */
    }
    .logo {
      background-image: url('/v3/template/logo-compact.svg');
      aspect-ratio: 1.02;
      height: 50px;
      bottom: -14px;
    }

  }

}


nav.pages-subnav {

  position: relative;
  margin-top: 16px;
  margin-left: -8px;

  z-index: 1;
  display: none; /* show only at 768px and up */
  gap: 8px;
  width: 100%;


  a {
    font-family: 'source-sans-pro', sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    padding: 8px 12px;
    border-radius: 50px;
    color: black;
    transition: all 0.2s ease-in-out;

    &:hover,&.active {
      background: var(--color-teal);
      color: white;
    }
  }

}
@media (min-width: 768px) {
  nav.pages-subnav {
    display: flex;
  }

  nav.pages-subnav + * {
    position: relative;
    margin-top: -96px; /* removes the flex gap for first actual item on page */
  }



}
@media (min-width: 1440px) {
  nav.pages-subnav + * {
    margin-top: -120px; /* removes the flex gap for first actual item on page */
  }
}

.floater-wrapper {
  width: 100vw;
  height: 100%;
  position: absolute;
  overflow: hidden;
}

.radial-gradient-cream {
  position: absolute;
  top: 0;
  left: 0;
  width: 50vw;
  height: 50vw;
  z-index: -1;
  transform: translateX(-5%) translateY(-10%);
  background: radial-gradient(50% 50% at 50% 50%, #F1EADB 0%, rgba(241, 234, 219, 0) 100%);
}
.radial-gradient-teal {
  position: absolute;
  top: 1200px;
  right: 0;
  width: 470px;
  aspect-ratio: 1;
  z-index: -1;
  transform: translateX(55%);
  /* background: radial-gradient(50% 50% at 50% 50%, var(--color-teal) 0%, rgba(179, 229, 227, 0) 100%); */
  background: radial-gradient(50% 50% at 50% 50%, #B3E5E3 0%, rgba(179, 229, 227, 0) 100%);

  @media (min-width: 768px) {
    top: 440px;
    width: 754px;
  }
  @media (min-width: 1440px) {
    top: 440px;
    transform: translateX(25%);
  }
}



div.page-body {
  position: relative;
  z-index: 1;

  display: flex;
  flex-direction: column;


  gap: 64px;
  padding-bottom: 64px;

  @media (min-width: 768px) {
    gap: 96px;
    padding-bottom: 96px;
  }
  @media (min-width: 1440px) {
    gap: 120px;
    padding-bottom: 120px;
  }
}

body.template-30 div.page-body { /* small component gap */

  gap: 24px;
  padding-bottom: 24px;

  @media (min-width: 768px) {
    gap: 32px;
    padding-bottom: 32px;
  }
  @media (min-width: 1440px) {
    gap: 48px;
    padding-bottom: 48px;
  }
  
}





footer.page-footer {

  position: relative;
  margin-top: -160px;

  .gradient {
    position: relative;
    z-index: 0;
    height: 160px;
    background: linear-gradient(to top, #F1EADB 0%, transparent 100%);

    .circle {
      width: 108px;
      aspect-ratio: 1;
      position: absolute;
      bottom: 0;
      transform: translateY(60%);
      left: 30px;
      border: 1px solid var(--color-red);
      border-radius: 100%;
    }
  }
  @media (min-width: 768px) {  
    margin-top: -240px;
    .gradient { height: 240px; }
    .gradient .circle { width: 216px; left: 60px; }
  }
  @media (min-width: 992px) { 
    margin-top: -560px;
    .gradient { height: 560px; }
  }

  
  .cta {
    position: relative;
    z-index: 1;
    padding-top: 32px;
    padding-bottom: 32px;
    background: var(--color-red);

    color: white;

    .contain {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
      gap: 16px;

      @media (min-width: 768px) {
        flex-direction: row;
      }


    }

    h2 {
      font-family: 'interstate', sans-serif;
      font-size: 29px;
      @media (min-width: 576px) {
        font-size: 32px;
      }
      font-weight: 700;
      margin: 0;
    }

    .buttons { 
      display: flex;
      justify-content: space-between;
      gap: 16px;

      a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: 'source-sans-pro', sans-serif;
        font-size: 14px;
        font-weight: 700;
        text-decoration: none;
        padding: 16px 32px;
        border-radius: 100px;
        transition: all 0.2s ease-in-out;
      }

      a:first-child {
        color: white;
        border: 1px solid black;
        &:hover {
          background: black;
        }
      }
      a:last-child {
        color: white;
        border: 1px solid black;
        background: black;
        &:hover {
          background: white;
          border-color: white;
          color: black;
        }
      }

    }

  }

  .content {

    position: relative;
    z-index: 1;

    display: grid;
    gap: 40px; 
    
    padding-top: 40px;
    padding-bottom: 40px;
    background: black;

    &, a {
      color: white;;
      text-decoration: none;
    }

    h3 {
      font-size: 24px;
      font-weight: 700;
      line-height: 1.2;
      margin: 0;
    }

    h5 {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      margin: 0;
      letter-spacing: 1px;
      color: var(--color-grey);
    }

    .contain {
      display: grid;
      gap: 40px;
      width: 100%;
    }

    .info {

      >*:last-child {
        margin-bottom: 0;
      }

    }

    nav {

      display: grid;
      grid-template-columns: auto auto auto;
      gap: 32px;
      font-size: 14px;
      font-weight: 700;

      .column {
        display: flex;
        flex-direction: column;
        gap: 12px;

        a {
          font-family: 'source-sans-pro', sans-serif;
        }
      }

      .prayer-button {
        width: auto;
        align-self: start;
      }

    }

    .logos {

      img { 
        width: 100%; 
      }

      .iinfo {
        flex: 100%;
        display: flex;
        align-items: center;
        img { height: 32px; width: auto; display: block;}
      }

      .nreca-social-container {
        display: flex;
        justify-content: space-between;
        gap: 24px;
        align-items: center;
      }

      .nreca,
      .social {
        flex: 1;
        display: flex;
        align-items: center;
      }

      .nreca img { max-width: 136px; }

      .social {
        display: flex;
        gap: 16px;
        justify-content: end;
        a {
          display: flex;
          align-items: center;
          justify-content: center;
          width: 48px;
          height: 48px;
          border: 1px solid white;
          border-radius: 100%;          
          opacity: 0.53;
          transition: all 0.2s ease-in-out;

          svg {
            width: 24px;
            height: 24px;
          }

          &.linkedin svg {
            width: 20px;
            height: 20px;
          }

          &:hover {
            opacity: 1;
          }

        }
      }


    }

    @media (min-width: 768px) {
      .contain {     
        grid-template-columns: 2fr 3fr;
      }
      .info,
      .iinfo {
        width: 320px;
      }

    }

  }

  .copyright {

    padding-top: 16px;
    padding-bottom: 16px;
    background: #191919;
    font-size: 10px;
    
    &, a {
      color: var(--color-grey-light);
      text-decoration: none;
      transition: all 0.2s ease-in-out;
    }

    a:hover {
      color: white;
    }

    .contain {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    nav {
      display: flex;
      gap: 24px;
    }
    
    @media (min-width: 768px) {
      font-size: 14px;

      .contain {
        flex-direction: row;
        justify-content: space-between;
      }
    }

  }

}



/* hide recaptcha badge */
.grecaptcha-badge {
  visibility: hidden;
}



/* Sections ================================================== */

.floater {
  position: absolute;
  z-index: 1;
  will-change: transform;
  transform: translate3d(0,0,0);
}

.floater#ellipse-teal {    
  width: 264px;
  top: -140px;
  left: -140px;
  aspect-ratio: 1;
  border: 1px solid var(--color-teal);
  border-radius: 100%;
  opacity: 0.3;

  @media (min-width: 768px) {
    width: 327px;
    top: -150px;
    left: -130px;
  }
  @media (min-width: 1440px) {
    width: 475px;
    top: -150px;
    left: -130px;
  }
}
.floater#ellipse-red {
  top: 600px;
  right: -90px;
  width: 140px;
  aspect-ratio: 1;
  border: 1px solid var(--color-red);
  border-radius: 100%;
  opacity: 0.3;

  @media (min-width: 768px) {
    top: 500px;
    right: -70px;
  }
  @media (min-width: 1440px) {
    width: 212px;
    top: 730px;
    right: -85px;
  }
}  

/* Home Section ================================================== */
section.home {
  background: linear-gradient(180deg, rgba(241, 234, 219, 0.5) 0%, rgba(241, 234, 219, 0) 300px);


  /* deal with floating elements */


  /* =================================================================================== */
  /* =================================================================================== */
  /* =================================================================================== */

  #chart-1 {
    position: absolute;
    width: 75px;
    height: 75px;
    top: 510px;
    left: -32px;
    background: url('/v3/template/home-chart-1.png') no-repeat center center;
    z-index: 1;
    @media (min-width: 768px) {
      top: 570px;
      left: 16px;
    }
    @media (min-width: 1440px) {
      top: 480px;
      left: 100px;
    }
  }
  #chart-2 {
    position: absolute;
    width: 40px;
    height: 40px;
    top: 0;
    right: 0;
    background: url('/v3/template/home-chart-2.png') no-repeat center center;
    z-index: 1;

    display: none;
    @media (min-width: 768px) {
      display: block;
      top: 16px;
      right: 255px;
    }
    @media (min-width: 1440px) {
      top: 435px;
      right: 18%;
    }

  }
  #bullseye-1 {
    width: 56px;
    height: 56px;
    top: 16px;
    left: 16px;
    svg {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    @media (min-width: 768px) {
      top: 70px;
      left: 80px;
    }
    @media (min-width: 1440px) {
      top: 110px;
      left: 180px;
    }
  }
  #bullseye-2 {
    display: none; /* hide for now */
    width: 56px;
    height: 56px;
    top: 605px;
    left: 234px;
    svg {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    @media (min-width: 768px) {
      top: 100px;
      right: -10px;
      left: auto;
    }
    @media (min-width: 1440px) {
      right: 9%;
    }
  }
  #bullseye-3 {
    width: 56px;
    height: 56px;
    bottom: 16px;
    left: 16px;
    svg {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    z-index: 3;

    display: none;

    @media (min-width: 768px) {
      display: block;
      bottom: 130px;
      left: calc(50% + -25px);
    }
    @media (min-width: 1440px) {
      bottom: auto;
      top: 23%;
      left: calc(36%);
    }   
  }
  #bullseye-4 {
    width: 56px;
    height: 56px;
    svg {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    z-index: 3;
    
    display: none;

    @media (min-width: 1440px) {
      display: block;
      bottom: 150px;
      left: calc(58%);
    }
  }

  .stats-floater {
    position: absolute;
  }

  .stats-floater#floater-1 { /* in hero */
    left: 16px;
    bottom: 0;
  }
  .stats-floater#floater-2 { /* in highlights */
    right: 16px;
    top: 70px;
  }
  .stats-floater#floater-3 { /* in highlights */
    bottom: 24%;
    left: 50%;
    transform: translateX(-50%);
  }
  @media (min-width: 768px) {
    .stats-floater#floater-1 {
      top: -4%;
      right: 32px;
      bottom: auto;
      left: auto;
    }
    .stats-floater#floater-2 {
      top: 48px;
      left: 9%;
    }
    .stats-floater#floater-3 {
      bottom: 36%;
      left: auto;
      right: 5%;
      transform: translateY(calc(-50%))  translate3d(var(--floatX, 0px), var(--floatY, 0px), 0);
    }
  }
  @media (min-width: 1440px) {
    .stats-floater#floater-1 {
      top: 10%;
      right: 12%;
    }
    .stats-floater#floater-2 {
      top: 100px;
      left: 12%;
    }
    .stats-floater#floater-3 {
      right: 16%;
      bottom: 32%;
    }
  }

  /* =================================================================================== */
  /* =================================================================================== */
  /* =================================================================================== */







  
  .hero {

    position: relative;
    padding: 64px 0;

    .wrap {
      max-width: 272px;
      margin-left: auto;
      margin-right: auto;

      text-align: center;
        
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 40px;

      > .content {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 40px;
        text-align: center;

      }
    }



    h1 {
      font-family: 'interstate', sans-serif;
      font-weight: 700;
      font-size: 32px;
      margin: 0;
    }
    p {
      margin: 0;
    }

    .buttons {
      display: flex;
      gap: 40px;
    }


    @media (min-width: 768px) {

      padding: 200px 0 330px 0;

      .wrap {
        max-width: 520px;
      }

      h1 {
        font-size: 48px;
      }
    }

    @media (min-width: 1440px) {

      padding-bottom: 0;

    }








  }


  .highlights {
    position: relative;

    display: grid;
    grid-template-columns: 1fr;

    .image {
      position: relative;

      .lines {
        background: url('/v3/template/home-stripes.png') repeat-y left center;

        position: absolute;
        width: 100px;
        height: 200px;
        top: -145px;
        z-index: 3;

        .rectangle {
          position: absolute;
          width: 100px;
          height: 55px;
          background: var(--color-red);
          bottom: 0;
          left: 0;
        }
      }

      img { 
        width: 100%; 
        height: auto; 
        max-height: 720px; /* large desktop */
        object-fit: cover;
        position: relative;
        z-index: 2;
      }
    }

    .text {
      display: flex;
      flex-direction: column;
      max-width: 272px;
      margin: 200px auto 64px auto;

      h3 { 
        font-size: 24px;
        font-weight: 700;
        margin-bottom: 24px;
      }
      p {
        margin: 0;

      }
    }
    






    @media (min-width: 768px) {
      grid-template-columns: 1fr 1fr;


      .image {
        margin: 0;

        .lines {

          left: auto;
          width: 20%;
          right: -20%;
          top: auto;
          bottom: 0;
          z-index: 1;

          height: 125%;

          .rectangle {
            width: 100%;
            height: 27%;
          }


          .rings {
            --rings-size: 16vw;
            position: absolute;
            width: var(--rings-size);
            height: var(--rings-size);
            bottom: calc(-0.5 * var(--rings-size));
            left: calc(-0.5 * var(--rings-size));
            background: url('/v3/template/home-rings.svg') no-repeat center center;
            background-size: cover;
          }

        }

      }

      .text {
        margin: 0;
        justify-content: end;
        max-width: 735px;
        padding-left: calc(20% + 15%);
        padding-right: 15%;
        padding-bottom: 15%;
      }


    }

    @media (min-width: 1440px) {

      padding-top: 200px;

      .image {
        .lines {

          height: 110%;

        }
      }
    }



  }













    .hero {
      padding-bottom: 280px;
    }
    .highlights {
      padding-top: 250px;
    }






    @media (min-width: 768px) {
      .hero {
        padding-bottom: 50px;
      }

    }




    @media (min-width: 1440px) {
      .hero {
        padding-bottom: 0;
      }
    }




}


/* Text-Image Section ================================================ */
section.text-image {
  
  padding-top: 40px;
  padding-bottom: 40px;

  .contain {
    display: flex;
    flex-direction: column;
    gap: 32px;
    @media (min-width: 1024px) {
      flex-direction: row;
      align-items: center;
      gap: 64px;
    }
  }

  .text {
    flex: 1;
  }

  .image {
    flex: 1;
    img {
      width: 100%;
      height: auto;
      display: block;
    }
  }

  &.image-left {
    .contain {
      @media (min-width: 1024px) {
        flex-direction: row-reverse;
      }
    }
  }

}



/* Text Section ================================================ */
div.page-body > section.text:first-child {
  padding-top: 80px;
}
section.text {
  
  padding-top: 40px;
  padding-bottom: 40px;

  h1 {
    margin-bottom: 32px;
  }
  
}



/* Services Video Section ================================================ */

section.services-video {

    display: grid;
    grid-template-columns: 1fr;

    .text {

      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 40px;
      margin: 0 16px;
      padding-bottom: 64px;

      h2 { 
        font-size: 32px;
        font-weight: 700;
        margin: 0;
      }
      h3 {
        font-size: 24px;
        font-weight: 700;
        margin: 0 0 16px 0;
      }
      p {
        margin: 0;
      }

      .service {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        &::before {
          content: '';
          position: relative;
          align-self: start;
          flex: 0 0 36px;
          width: 36px;
          height: 36px;
          background: url('/v3/template/icon-bullseye.svg') no-repeat center center;
          border-radius: 100px;
        }
      }

    }

    .video {

      position: relative;
      z-index: 3;

      img { 
        width: 100%;
        height: 100%;
        max-height: 600px;
        object-fit: cover;
      }
    }

    

    @media (min-width: 768px) {
      grid-template-columns: 1fr 1fr;

      .text {
        margin: 0;
        padding: 64px 40px 64px 24px;

        
      }

    }

    @media (min-width: 1024px) {
      .text {
        max-width: 544px;
        margin: 0 auto;
        padding-top: 100px;
        padding-bottom: 100px;
        h2 { 
          font-size: 48px;
        }
        .service {
          gap: 24px;
        }
      }
      .video img {
        max-height: none;
      }
    }

}
body.page-184 section.services-video {
  margin-top: -64px;
  @media (min-width: 768px) {
    margin-top: -96px;
  }
  @media (min-width: 1440px) {
    margin-top: -120px;
  }
}





/* Video Slider Section ================================================ */
section.old-video-slider {
  padding: 64px 0;
  display: grid;
  grid-template-columns: 1fr;

  h3 { 
    font-family: 'interstate', sans-serif;
    font-size: 32px;
    font-weight: 700;
    margin: 0
  }

  .text {

    display: none;
    flex-direction: column;
    justify-content: center;

    ul {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;

      li {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: flex-start;

        gap: 8px;
        overflow: hidden;

        border-left: 1px solid var(--color-grey-light);
        
        padding-left: 32px;
        padding-bottom: 40px;
        padding-top: 40px;
        cursor: pointer;

        &,
        &::before,
        * {
          transition: all 0.3s ease-in-out;
        }

        h3 {
          color: var(--color-grey);
        }
        div.description {
          display: none;
        }

        &::before {
          content: '';
          position: absolute;
          left: 0;
          top: 0;
          transform: translateY(-100%);
          width: 4px;
          height: 100%;
          background-color: var(--color-grey-light);
        }
        &.active::before {
          background-color: var(--color-teal);
          transform: translateY(0);
        }

        &.active {

          padding-top: 0;
          
          h3 {
            color: black;
          }
          div.description {
            display: block;
          }
        }

        &:hover {
          h3 {
            color: black;
          }
        }

      }

      
    }


  }

  .swiper {

    margin: 0 0 0 16px;
    padding-bottom: 32px;
    display: flex;

    .swiper-slide {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      
      transition: all 0.3s ease-in-out;
      
      
      &.swiper-slide-next {
        opacity: 0.3;
      }

      position: relative;
      width: 100%;
      height: 100%;
      overflow: hidden;

      .description {
        margin-bottom: 16px;
      }

      .video {

        position: relative;

        .play-button {
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          width: 80px;
          height: 80px;
          background: url('/v3/template/icon-video-play-circle.png') no-repeat center center;
          background-size: cover;
        }
      }

      img {
        width: 100%;
      }

    }

    .swiper-pagination {
      text-align: right;
      padding-right: 16.5%;
    }

    .swiper-pagination-bullet-active {
      background: black;
    }

  }


  @media (min-width: 768px) {
    grid-template-columns: 1fr 1fr;



    .text {
      display: flex;
      max-width: 544px;
      padding-left: 24px;
      padding-right: 64px;
    }
    .swiper {
      width: 50vw;
      margin: 0;
      .description {
        display: none;
      }

      .swiper-pagination {
        text-align: left;

      }

    }
  }
  @media (min-width: 1440px) {
    padding: 120px 0;

    .text {
      width: 544px;
      margin: 0 auto;
      
    }
  }

}
.featherlight.video-slider {
  .featherlight-content {

    display: inline-flex;
    flex-direction: column;

    width: 90%;
    max-width: 1000px;
    height: auto;
    background: transparent;
    border-bottom: 0;
    padding: 0;

    .featherlight-close {
      position: relative;
      align-self: flex-end;
      background: white;
      border-radius: 100px;
      margin-bottom: 24px;
      width: 40px;
      height: 40px;

    }

    .video {
      position: relative;
      width: 100%;
      height: 100%;
      padding-top: 56.25%; /* 16:9 aspect ratio */
      overflow: hidden;

      iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }

    }

    .meta {
      display: flex;
      flex-direction: column;
      justify-content: space-between;

      color: white;
      margin-top: 40px;

      @media (min-width: 768px) {
        flex-direction: row;
      }


      h3 {
        font-size: 24px;
        font-weight: 700;
        margin: 0;
      }

    }

    .button {
      background-color: white;
      border-radius: 50px;
      white-space: nowrap;
      font-size: 14px;
      font-weight: 700;
      color: black;
      font-family: 'source-sans-pro', sans-serif;
      padding: 16px;
      text-decoration: none;
      display: inline-block;
    }
    .button:hover,
    .button:active {
      background-color: black;
      color: white;
    }
  }
}

/* Responsive Image Section ================================================== */
section.responsive-image {

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;

  .introduction {
    padding: 0 16px;
  }

  h3 {
    font-size: 24px;
    font-weight: 700;
    margin: 0;
    text-align: center;
  }

  img {
    width: 100%;
    max-width: 1440px;
  }

}

/* Testimonials Slider ================================================== */
section.testimonials {
  position: relative;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;

  .quotemark {
    width: 32px;
    height: 29px;   
    background: url('/v3/template/icon-double-quotes.svg') no-repeat center center;
  }

  .wrap {
    width: calc(100% - 32px);

  }

  .testimonial {
    text-align: center;
    font-size: 24px;

    .text {
      margin-bottom: 32px;
    }

    .from {

      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 16px;
      font-size: 14px;

      .person {
        display: flex;
        justify-content: start;
        align-items: center;
        text-align: left;
        gap: 20px;

        .avatar {
          background: black;
          background-position: center center;
          background-size: cover;
          color: white;
          display: flex;
          justify-content: center;
          align-items: center;
          border-radius: 100%;
          width: 50px;
          height: 50px;
          padding: 13px;
          font-size: 16px;
          font-weight: 700;
        }
        .avatar.with-image {
          background-color: none;
        }

        .name {
          font-weight: 700;
        }

      }

      hr {
        width: 50px;
        border: 0;
        height: 1px;
        background: black;
        margin: 0;
      }

      .company-logo {
        img {
          width: auto;
          max-height: 56px;
        }
      }

    }
    
  }

  .glide__track {
    transition: height 250ms ease;
  }

  .glide__nav {

    margin-top: 32px;
    display: flex;
    justify-content: center;

    .glide__bullets {
      display: flex;
      align-items: center;
      gap: 8px;

      .glide__bullet {
        padding: 0;
        width: 8px;
        aspect-ratio: 1;
        border-radius: 100%;
        background: var(--color-grey-light);
        border: none;
        margin: 0;
        transition: all 0.3s ease;

        &.glide__bullet--active {
          background-color: black;
          opacity: 1;
        }
      }      

    }



    .glide__arrows {

      display: none;
      gap: 16px;

      .glide__arrow {

        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: transparent;

        width: 48px;
        height: 48px;
        border: none;
        border-radius: 100%;
        transition: all 0.3s ease-in-out;
        border: 1px solid var(--color-grey-light);

        &&.glide__arrow--left {
          transform: rotate(180deg);
        }

      }

    }

    @media (min-width: 768px) {
      justify-content: space-between;
      .glide__arrows {
        display: flex;
      }
    }

  }



  @media (min-width: 768px) {

    .wrap {
      width: calc(100% - 64px);
      max-width: 768px;
    }
    .testimonial .from {
      flex-direction: row;
      justify-content: center;
      align-items: center;

      hr {
        width: 1px;
        height: 50px;
      }

    }
  }

}

/* Logo Overlay Card Grid ================================================== */
section.logo-overlay-card-grid {

  padding: 40px 0 80px 0;

  h1 {
    font-size: 32px;
    font-weight: 700;
    font-family: 'interstate', sans-serif;
    margin-bottom: 40px;
  }

  .cards-grid {

    display: grid;
    grid-template-columns: 1fr;
    column-gap: 24px;
    row-gap: 64px;

    .card {
      /* reset bootstrap styles */
      background: none;
      border: 0;
      border-radius: 0;
      text-decoration: none;

      display: flex;
      flex-direction: column;
      gap: 24px;
      

      .image {
        position: relative;
        > img { 
          width: 100%; 
          aspect-ratio: 416 / 300;
          object-fit: cover;
        }

        .overlay {
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          display: flex;
          align-items: center;
          justify-content: center;
          background-color: rgba(0, 0, 0, 0.4);
          transition: all 0.3s ease;

          img {
            width: 75%;
            max-width: 240px;
            max-height: 75%;
          }
        }
      }

      h3 {
        position: relative;
        font-size: 24px;
        font-weight: 700; 
        font-family: 'proxima-nova', sans-serif;

        &::after {
          content: '';
          position: absolute;
          bottom: -10px;
          left: 0;
          width: 0%;
          height: 1px;
          background-color: black;
          transition: all 0.3s ease;
        }
      }

      &:hover {
        .overlay {
          opacity: 0;
          /* transform: scale(1.05); */
        }
      

        h3::after {
          width: 100%;
        }


      }

    }



  }


  @media (min-width: 768px) {
    padding: 80px 0 120px 0;
    h1 {
      font-size: 48px;
    }
    .cards-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  @media (min-width: 1024px) {
    padding: 120px 0 160px 0;
    h1 {
      margin-bottom: 64px;
    }
    .cards-grid {
      grid-template-columns: repeat(3, 1fr);
    }
  }
  
}

/* Sticky Menu ================================================== */
section.sticky-menu {
  width: 100%;

  @media (min-width: 992px) {
    h2 {
      font-size: 48px;
    }
  }

  nav {
    transition: all 0.3s ease-in-out;

    
    .contain .links {
        display: flex;
        gap: 8px;
        border-bottom: 1px solid #bcbec0;
        overflow-x: auto;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE & Edge */
    }
    .contain .links::-webkit-scrollbar {
      display: none; /* Chrome, Safari, Opera */
    }

    z-index: 10;

    &.sticky {
      position: fixed;
      left: 0;
      width: 100%;
      border-bottom: 1px solid #bcbec0;
      background: white;

      .links {
        border-bottom: none;
       
      }
    }

    button {

      appearance: none;
      background: none;
      border: none;
      white-space: nowrap;

      display: block;
      padding: 16px 12px 12px 12px;
      font-weight: 700;
      color: black;
      text-decoration: none;
      border-bottom: 3px solid transparent;


      &.active, &:hover {
        border-bottom-color: var(--color-teal);
      }
    }

  }
}
section.sticky-menu + * {
  position: relative;
  /* removes the flex gap for first section after sticky menu */
  margin-top: -32px; 
  
  @media (min-width: 768px) {
    margin-top: -56px; 
  }
  @media (min-width: 1440px) {
    margin-top: -64px; 
  }
  
}



/* Info Box =================================================== */
.info-box {
  background: #F1EADB99;
  border-top: 4px solid #E33C29;
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
  padding: 24px;

  >*:last-child {
    margin-bottom: 0;
  }

  h3 {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  hr {
    margin: 24px 0;
  }

  p {
    margin-bottom: 24px;
  }

  ul {
    list-style: none;
    margin: 0;
    padding: 0;
    li {
      border-bottom: 1px solid #BCBEC0;
      padding: 12px 6px;
    }
    li:last-of-type {
      border-bottom: none;
    }
  }

  &.inline-icon {
    /* icon inline with title up until desktop */
    h3 {
      flex-direction: row;
      align-items: center;
    }
  }  

  @media (min-width: 1024px) {

    padding: 32px;

    &.inline-icon {
      h3 {
        flex-direction: column;
        align-items: start;
      }
    }  

    h3 {
      align-items: start;
      gap: 24px;
    } 

  }

}  






section.form {

  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 32px;

  .logo {
    img {
      width: 350px;
      max-width: 100%;
      padding-bottom: 32px;
      margin: 0 auto;
      display: block;
    }
  }

  .intro {
    > *:last-child {
      margin-bottom: 0;
    }
  }

  .elements {

    display: flex;
    flex-direction: column;
    gap: 32px;

    h3 {
      margin-bottom: 0;
    }

    .element {

      position: relative;

      * { 
        position: relative;
        z-index: 1; 
      }

      .form-label {
        display: block;
        font-weight: 700;
        font-size: 14px;
      }

      .form-control {
        /* width: 100%;
        box-sizing: border-box;
        font-size: 14px;
        padding: 8px 12px; */
        border: 1px solid var(--color-grey-light);
        border-radius: 4px;
      }

      &.date {
        input {
          display: inline-block;
          width: auto;
        }
      }
      &.sectionopen {
        @media (min-width: 768px) {
          .row .element {
            flex: 1 0 0%;
          }
        }
      }
      
      &.signature {
        button {
          background-color: var(--color-green);
          border-color: var(--color-green-dark);
          min-width: 80px;
          color: #fff;
          font-size: 14px;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          height: 2em;
          border-radius: 4px;
          border: 1px solid;
          float: right;
        }
        button:hover {
          background-color: #01502b;
          border-color: #01502b;
        }
      }

      &.icon-boxes {

        .icon-box-options {
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
          gap: 16px;
        }

        .icon-box-option {
          position: relative;
          border: 1px solid var(--color-grey-light);
          border-radius: 4px; 
          padding: 16px;
          
          font-weight: 700;
          background: white;
          
          display: flex;
          flex-direction: column;
          justify-content: center;
          aspect-ratio: 197/160;

          label {
            display: flex;
            gap: 16px;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
          }


          input {
            position: absolute;
            float: none;
            top: 0;
            left: 0;
            height: 100%;
            width: 100%;
            margin: 0;
            opacity: 0;
          }

          &:has(input:checked) {
            background: var(--color-red);
            color: white;
            border-color: var(--color-red);
          }

        }

      }

    }

    
    .element:has(input:focus):before,
    .element:has(textarea:focus):before {
      position: absolute;
      content: '';
      width: calc(100% + 32px);
      height: calc(100% + 32px);
      /*background: #f1f5ff;*/
      z-index: 0;
      left: -16px;
      top: -16px;
    }
    /* adjust for elements within a section (nested) */
    .sectionopen .element:has(input:focus):before,
    .sectionopen .element:has(textarea:focus):before {
      width: calc(100% + 8px);
      left: -8px;
    }

    .element {
      /* remove focus background from sub-elements */
      .element:has(input:focus):before {
        display: none;
      }
    }


    .element.element-error:before {
      position: absolute;
      content: '';
      width: calc(100% + 32px);
      height: calc(100% + 32px);
      background: #f8d7da !important;
      border-bottom: 2px solid white;
      z-index: 0;
      left: -16px;
      top: -16px;
    }   

    @media (max-width: 767px) {



      /* adjust for elements within a section (nested) */
      .sectionopen .element.element-error:before {
        width: calc(100% + 16px);
        left: -8px;
        height: calc(100% + 16px);
        top: -5px;
      }

      /* adjust for first field within a section */
      .sectionopen .element.element-error:nth-child(1):before {
        width: calc(100% + 16px);
        left: -8px;
        height: calc(100% + 28px);
        top: -16px;
      }
      /* adjust for second field within a section */
      .sectionopen .element.element-error:nth-child(2):before {
        width: calc(100% + 16px);
        left: -8px;
        height: calc(100% + 24px);
        top: -5px;
      }

    }
    @media (min-width: 768px) {

      /* adjust for elements within a section (nested) */
      .sectionopen .element.element-error:before {
        width: calc(100% + 8px);
        left: -8px;
      }

      /* adjust for second field within a section */
      .sectionopen .element.element-error:nth-child(2):before {
        width: calc(100% + 8px);
        left: 0;
      }
      
    }

  }


  .form-check input,
  .form-check label {
    cursor: pointer;
  }

  em.req {
    color: red;
    font-weight: 500;
  }

  hr { 
    margin: 0;
  }

  /*
  input[type=submit] {
    background-color: var(--color-green);
    border-color: var(--color-green-dark);
    min-width: 180px;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3em;
    border-radius: 4px;
    border: 1px solid;
    transition: all 0.2s ease;
  }
  input[type=submit]:hover {
    background-color: black;
    border-color: black;
  }
  */

  progress {
    width: 100%;
    height: 5px;
    border: none; /* Remove default border */
    background-color: #e0e0e0; /* Background for the progress bar */
    border-radius: 10px;
    overflow: hidden; /* Ensures rounded corners apply */
  }

  /* Style the value (the filled portion of the progress bar) */
  progress::-webkit-progress-value {
      background-color: var(--color-green); /* Green */
      transition: width 0.2s; /* Smooth animation */
  }

  progress::-moz-progress-bar {
      background-color: var(--color-green); /* Green for Firefox */
      transition: width 0.2s;
  }

  /* Style the remaining part of the bar */
  progress::-webkit-progress-bar {
      background-color: #e0e0e0; /* Light gray */
  }

}



/* ======================================================================================= */
/* Prayer Portal Section ================================================== */
/* ======================================================================================= */
#form7082_section {

  .elements {
    gap: 24px;
  }

}

section.prayer-portal {
  padding-top: 48px;
  
  @media (min-width: 768px) {
    padding-top: 96px;
  }

  @media (min-width: 992px) {
    padding-top: 120px;
  }

  .sidebar {
    display: flex;
    flex-direction: column;
    gap: 32px;
  }

  .columns {
    display: grid;
    gap: 32px;

    @media (min-width: 992px) {
      grid-template-columns: 300px 1fr;
    }
  }


  h1 {
    margin-bottom: 40px;
  }



  .stats-floater {
    width: 100%;
    padding: 32px;
    font-weight: 400;
    text-align: left;
    border-top-color: var(--color-red);
    background: var(--color-cream);
    svg { 
      width: 36px; 
      height: 36px;
    }

    .content > *:last-child {
      margin-bottom: 0;
    }
  }

  .stats {
    border: 1px solid var(--color-grey-light);
    border-radius: 16px;
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
    align-items: center;

    h2, p {
      margin: 0;
    }

    h2 {
      font-size: 48px;
    }

  }


  

  .prayer-list {

    display: grid;
    gap: 32px;

    @media (min-width: 768px) {
      grid-template-columns: repeat(2, 1fr);
    }

    .prayer {
      display: flex;
      gap: 24px;
      padding: 16px;
      background: white;
      border: 1px solid var(--color-grey-light);
      border-top-right-radius: 16px;
      border-bottom-right-radius: 16px;
      border-left: 4px solid var(--color-red);
      font-size: 12px;
      overflow: hidden;
      text-decoration: none;


      .icon {
        flex: 0 0 40px;
        img {
          height: 40px;
          width: 40px;
          transition: transform 0.3s ease-in-out;
        }
      }

      @media (min-width: 768px) {
        .icon {
          flex: 0 0 64px;
          img {
            height: 64px;
            width: 64px;
          }
        }
      }

      &:hover .icon img {
        transform: rotate(180deg);
      }

      .content {
        flex: 1;
        min-width: 0;
      }

      .meta {
        display: flex;
        gap: 20px;
        align-items: start;
        .title {
          flex: 1;
        }

      }

      h3 {
        margin-bottom: 8px;
      }
      p {
        margin: 0; 
      }
    }
  }


}

.featherlight.prayer-info-popup .featherlight-content {
  width: 100%;
  max-width: 1600px;
  margin: 0;
  padding: 64px 0;
  border-bottom: 0;
  overflow-x: hidden;

  @media (min-width: 768px) {
    padding: 96px 96px;
  }

  .prayer-info-popup {

    max-width: 952px;
    margin: 0 auto;

    .contain-temp {
      display: flex;
      flex-direction: column;
      gap: 32px;

      padding: 0 25px;

      @media (min-width: 768px) {
        flex-direction: row;
      }
    }

    .meta {

      display: flex;
      flex-direction: column;
      gap: 24px;

      flex: 0 0 30%;

      h2 {
        margin: 0;
      }

    }

    .timelikes {
      display: flex;
      gap: 16px;
    }

    .info {
      flex: 0 0 70%;

      h2 {
        margin-top: 0;
      }
    }
  }

  .featherlight-close {
    top: 8px; 
    right: 8px;
  }
  .featherlight-previous,
  .featherlight-next {

    top: 0;
    bottom: 0;
    left: auto;
    right: auto;
    width: auto;
    display: none;
    padding: 0 16px;

    @media (min-width: 767px) {
      display: flex;
    }



    span {
      position: relative;
      text-indent: -9999px;
      background: url('/v3/template/icon-arrow-right-black.svg') no-repeat center center;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      border: 1px solid var(--color-grey-light);
      border-radius: 50%;
      transition: all 0.3s ease-in-out;
    }

    &:hover {
      background-color: transparent;
    }
  }
  .featherlight-previous {
    left: 0px;
    right: auto;
    justify-content: start;
    span {
      transform: rotate(180deg);
    }
    &:hover span {
      transform: rotate(180deg) translateX(5px);
    }
  }
  .featherlight-next {
    right: 0px;
    justify-content: end;

    &:hover span {
      transform: translateX(5px);
    }
  }

}

section.prayer-portal .likes,
.featherlight.prayer-info-popup .likes {
  position: relative;
  margin-top: 2px;
  cursor: pointer;

  

  img {
    width: 16px;
  }
  span {
    position: absolute;
    top: -8px;
    right: -12px;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    line-height: 18px;
    font-size: 7px;
    font-weight: 700;
    border: 1px solid var(--color-grey-light);
    transition: all 0.1s ease-out;
  }

  &.flash {
    span {
      background: var(--color-red);
      border-color: var(--color-red);
      color: white;
    }
  }
  &.no-likes span {
    display: none;
  }

}
.featherlight.prayer-info-popup .likes {
  cursor: default;
}

section.prayer-portal .time,
.featherlight.prayer-info-popup .time {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 3px;
  font-size: 10px;
}
.featherlight.prayer-info-popup .time {
  margin-top: 5px;
}

/* ======================================================================================= */
/* ======================================================================================= */
