/* photo wrappers */

#gallerySection * {
    transition: .35s ease-in-out;
}

#slideshowModal, #slideshowModal * {
    transition: .5s ease-in-out;
}

  #gallerySection .col-12 .photo-wrapper:not(:first-child) {
    margin-block-start: 1rem;
  }
  
  @media screen and (min-width: 768px) {
    #gallerySection .col-12 {
      height: min-content;
    }
  }
  
  .photo-wrapper .int {
    cursor: pointer;
    position: relative;
    overflow: hidden;
    border-radius: var(--borderradius);
    box-shadow: 0 0 0 1px rgba(0,0,0,0.25);
    max-height: 50vh;
  }

  @media screen and (max-width: 574px) {
    .photo-wrapper .int {
        margin-block: 2rem;
      }
  }

  .photo-wrapper img {
    display: block;
    scale: 1;
    width: 100%;
  }
  
  .photo-wrapper:hover img {
    scale: 1.05;
  }
  
  .photo-wrapper .buttons {
    --btnDim: 2.625rem;
    position: absolute;
    z-index: 3;
    height: 100%;
    display: flex;
    flex-flow: column wrap;
    gap: 0.25rem;
    padding: 0.5rem;
    transition: inset var(--transition2);
    inset: 0;
  }
  
  @media screen and (max-width: 767px) {
    .photo-wrapper .buttons {
      --btnDim: 3.625rem;
    }
  }
  
  @media (hover: hover) {
    .photo-wrapper .buttons {
      inset: 0 auto 0 var(--insetL, calc((var(--btnDim) + 1rem) * -1.1));
    }
  
    .photo-wrapper:hover .buttons {
      --insetL: 0;
    }
  }
  
  @media (hover: none) {
    .photo-wrapper .int:has(.btn[download]) {
      box-shadow: none;
    }
  
    .photo-wrapper .buttons .btn[download] {
      --btnDim: 65px;
      --inset: -0.5rem;
      --lightgreen: var(--orange2);
      border-radius: 0 0 var(--borderRadius);
      position: relative;
      inset: var(--inset) auto auto var(--inset);
      box-shadow: 0 0 0 6px var(--pageBackdropColour);
    }
  
    .photo-wrapper .buttons .btn[download] .fa {
      font-size: 1.4rem;
    }
  }
  
  .photo-wrapper .buttons .btn {
    width: var(--btnDim);
    height: var(--btnDim);
    padding: 0;
    display: grid;
    place-items: center;
    box-shadow: 0 0 0 1px var(--black04);
  }
  
  .photo-wrapper .buttons .btn:hover {
    background-color: var(--white);
    border-color: var(--white);
  }
  /* slideshow */
  
  #slideshowModal .modal-body,
  #slideshowModal .modal-content {
    overflow: visible;
  }
  
  #slideshowCarousel .carousel-controls button {
    --dim: 75px;
    background-color: var(--white06);
    height: var(--dim);
    width: var(--dim);
    top: 0;
    margin-block: auto;
    border-radius: 50%;
    transition: var(--transition2);
    opacity: 1;
    backdrop-filter: blur(0.5em);
  }
  
  #slideshowCarousel .carousel-controls button:hover {
    background-color: var(--white);
  }
  
  #slideshowCarousel .carousel-controls button:first-child {
    left: var(--posY, -15%);
  }
  #slideshowCarousel .carousel-controls button:first-child [aria-hidden='true'] {
    margin-left: -3px;
  }
  
  #slideshowCarousel .carousel-controls button:last-child {
    right: var(--posY, -15%);
  }
  #slideshowCarousel .carousel-controls button:last-child [aria-hidden='true'] {
    margin-right: -3px;
  }
  
  @media screen and (max-width: 767px) {
    #slideshowCarousel .carousel-controls button [aria-hidden='true'] {
      scale: 0.5;
    }
    #slideshowCarousel .carousel-controls button:last-child [aria-hidden='true'] {
      margin-left: -1px;
    }
    #slideshowCarousel .carousel-controls button {
      top: 30px;
      --dim: 30px;
      background-color: var(--white);
    }
    #slideshowCarousel .carousel-controls button:first-child,
    #slideshowCarousel .carousel-controls button:last-child {
      --posY: 12.5px;
    }
  }
  
  #slideshowCarousel .carousel-controls button * {
    filter: invert(1);
  }
  
  #slideshowCarousel .carousel-item,
  #slideshowCarousel .carousel-image-wrapper {
    overflow: hidden;
    aspect-ratio: 3/2;
    height: 100%;
  }
  
  #slideshowCarousel .carousel-inner,
  #slideshowCarousel .carousel-item,
  #slideshowCarousel .carousel-item img {
    border-radius: var(--borderRadius);
  }
  
  #slideshowCarousel .carousel-item img {
    height: 100%;
    margin-inline: auto;
    border-radius: var(--borderradius);
    border: 1px solid var(--black02);
  }
  
  /* specific gallery cards */
  
  [data-id='nlf-wreath-laying-2024'] .card-img-top.main {
    --posY: 35%;
  }
  
  [data-id='town-outreach-2024'] .card-img-top[src*='OUTREACH-35.webp'] {
    --posY: 35.5%;
  }
  
  [data-id='mental-health-day-2024'] .card-img-top.main[src*='-17.jpg'] {
    --posY: 45.5%;
  }
  
  /* modal image preview notifier */
  
  #imageQualityNotifier {
    --initHeight: 0ch;
    --fillHeight: 3ch;
    transition: var(--transition2);
    font-size: .85rem;
    line-height: 1.3;
  }
  
  #imageQualityNotifier b {
    font-weight: 800;
    font-size: 1.2em;
    letter-spacing: 0;
  }
  
  #imageQualityNotifier:empty {
    opacity: 0;
    height: var(--initHeight);
    margin-bottom: 0;
  }
  
  #imageQualityNotifier:not(:empty) {
    height: var(--fillHeight);
    opacity: 1;
    margin-bottom: 1rem;
  }