/* =========================================================
   Gallery overrides
   Load this stylesheet after the site and gallery stylesheets.
   All selectors are scoped to prevent site-wide conflicts.
   ========================================================= */

/* Shared image and list resets */
.ad-gallery img,
.photo-gallery-slider img,
.photo-gallery-filmstrip img,
.photo-gallery-column img,
.background-slideshow img {
  box-sizing: border-box;
  margin: 0;
}

.ad-gallery ul,
.ad-gallery li,
.photo-gallery-slider ul,
.photo-gallery-slider li,
.photo-gallery-filmstrip ul,
.photo-gallery-filmstrip li,
.background-slideshow ul,
.background-slideshow li {
  margin: 0;
  padding: 0;
  list-style: none;
  background: none;
}

/* Ad Gallery */
.ad-gallery {
  width: 100%;
  clear: both;
}

.ad-gallery img {
  display: inline;
  float: none;
  max-width: none;
  height: auto;
}

.ad-gallery .ad-image-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.ad-gallery .ad-image-wrapper .ad-image {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
}

.ad-gallery .ad-image-wrapper .ad-image img {
  display: block;
  max-width: none;
  margin: 0;
}

.ad-gallery .ad-nav {
  clear: both;
  width: 100%;
}

.ad-gallery .ad-thumbs {
  width: 100%;
  overflow: hidden;
}

.ad-gallery .ad-thumb-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
}

.ad-gallery .ad-thumb-list li {
  display: block;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  background: none;
}

.ad-gallery .ad-thumb-list li img {
  display: block;
  float: none;
  max-width: none;
  height: auto;
  margin: 0;
}

/* Carousel */
.photo-gallery-slider {
  position: relative;
  width: 100%;
  clear: both;
  overflow: hidden;
}

.photo-gallery-slider .carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.photo-gallery-slider .carousel-inner > .item.carousel-photo-tint {
  position: relative;
  display: none;
  width: 100%;
  margin: 0;
  padding: 0;
  background: none;
}

.photo-gallery-slider .carousel-inner > .item.carousel-photo-tint.active {
  display: block;
}

.photo-gallery-slider .carousel-inner > .item.carousel-photo-tint > img {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
}

.photo-gallery-slider .carousel-indicators {
  z-index: 15;
  margin: 0;
  padding: 0;
}

.photo-gallery-slider .carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px 4px;
  padding: 0;
  border: 1px solid #fff;
  border-radius: 50%;
  background: transparent;
  list-style: none;
}

.photo-gallery-slider .carousel-indicators li.active {
  width: 10px;
  height: 10px;
  margin: 1px 4px;
  background: #fff;
}

.photo-gallery-slider .carousel-photo-tint .caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  margin: 0;
  padding: 20px;
  color: #fff;
  background: rgb(0 0 0 / 55%);
}

.photo-gallery-slider .carousel-photo-tint .caption .title {
  margin: 0;
  color: inherit;
  font-size: 1.8rem;
  line-height: 1.3;
}

/* Filmstrip */
.photo-gallery-filmstrip {
  width: 100%;
  clear: both;
}

.photo-gallery-filmstrip .asset-skid-carousel {
  display: flex;
  align-items: center;
  width: 100%;
}

.photo-gallery-filmstrip .carousel-container {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}

.photo-gallery-filmstrip .carousel-items {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  width: 100%;
  overflow: hidden;
}

.photo-gallery-filmstrip .carousel-items .filmstrip-item {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  background: none;
}

.photo-gallery-filmstrip .filmstrip-item img {
  display: block;
  float: none;
  max-width: none;
  height: auto;
  margin: 0;
}

.photo-gallery-filmstrip .carousel-left,
.photo-gallery-filmstrip .carousel-right {
  flex: 0 0 auto;
}

/* Column gallery */
.photo-gallery-column {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  clear: both;
}

.photo-gallery-column > div {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.photo-gallery-column a {
  display: block;
}

.photo-gallery-column img {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}

/* Background slideshow */
.background-slideshow {
  width: 100%;
  clear: both;
}

.background-slideshow__gallery {
  position: relative;
  width: 100%;
  min-height: 400px;
  overflow: hidden;
}

.background-slideshow__gallery li {
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

/* Mobile rules override the site's global img !important rules */
@media (max-width: 767px) {
  .ad-gallery img,
  .photo-gallery-slider img,
  .photo-gallery-filmstrip img,
  .photo-gallery-column img {
    float: none !important;
    margin: 0 !important;
  }

  .photo-gallery-slider .carousel-inner > .item.carousel-photo-tint > img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .photo-gallery-filmstrip .carousel-items {
    overflow-x: auto;
  }

  .photo-gallery-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 576px) {
  .photo-gallery-column {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   Gallery Bootstrap subset
   ========================================================= */

/*
 * Gallery-only Bootstrap 3 rules.
 * This is a scoped subset of Bootstrap 3.3.7.
 * Load after the site stylesheet and gallery JavaScript styles.
 */

/* Shared gallery box sizing */
.ad-gallery,
.ad-gallery *,
.photo-gallery-slider,
.photo-gallery-slider *,
.photo-gallery-filmstrip,
.photo-gallery-filmstrip *,
.photo-gallery-column,
.photo-gallery-column *,
.background-slideshow,
.background-slideshow * {
  box-sizing: border-box;
}

/* Bootstrap carousel */
.photo-gallery-slider.carousel {
  position: relative;
}

.photo-gallery-slider .carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.photo-gallery-slider .carousel-inner > .item.carousel-photo-tint {
  position: relative;
  display: none;
  margin: 0;
  padding: 0;
  background: none;
  transition: left 0.6s ease-in-out;
}

.photo-gallery-slider .carousel-inner > .item.carousel-photo-tint > img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  margin: 0;
  line-height: 1;
}

.photo-gallery-slider .carousel-inner > .item.active,
.photo-gallery-slider .carousel-inner > .item.next,
.photo-gallery-slider .carousel-inner > .item.prev {
  display: block;
}

.photo-gallery-slider .carousel-inner > .item.active {
  left: 0;
}

.photo-gallery-slider .carousel-inner > .item.next,
.photo-gallery-slider .carousel-inner > .item.prev {
  position: absolute;
  top: 0;
  width: 100%;
}

.photo-gallery-slider .carousel-inner > .item.next {
  left: 100%;
}

.photo-gallery-slider .carousel-inner > .item.prev {
  left: -100%;
}

.photo-gallery-slider .carousel-inner > .item.next.left,
.photo-gallery-slider .carousel-inner > .item.prev.right {
  left: 0;
}

.photo-gallery-slider .carousel-inner > .item.active.left {
  left: -100%;
}

.photo-gallery-slider .carousel-inner > .item.active.right {
  left: 100%;
}

.photo-gallery-slider .carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin: 0 0 0 -30%;
  padding: 0;
  text-align: center;
  list-style: none;
}

.photo-gallery-slider .carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  padding: 0;
  border: 1px solid #fff;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
  text-indent: -999px;
}

.photo-gallery-slider .carousel-indicators li.active {
  width: 12px;
  height: 12px;
  margin: 0;
  background-color: #fff;
}

/* Gallery captions; avoids the site's generic .caption rules */
.photo-gallery-slider .carousel-photo-tint .caption {
  position: absolute;
  right: 15%;
  bottom: 20px;
  left: 15%;
  z-index: 10;
  margin: 0;
  padding: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgb(0 0 0 / 60%);
}

.photo-gallery-slider .carousel-photo-tint .caption .title {
  margin: 0;
  color: inherit;
}

/* Filmstrip controls use Bootstrap's responsive utility behavior */
@media (max-width: 767px) {
  .photo-gallery-filmstrip .hidden-xs {
    display: none !important;
  }
}

/* Bootstrap glyphicons used by the Column modal */
.photo-gallery-column .glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.photo-gallery-column .glyphicon-chevron-left::before {
  content: '\e079';
}

.photo-gallery-column .glyphicon-chevron-right::before {
  content: '\e080';
}

/* Column gallery modal; retains the required #myModal ID */
#myModal.modal {
  position: fixed;
  inset: 0;
  z-index: 1050;
  display: none;
  overflow: hidden;
  outline: 0;
}

#myModal.modal.in {
  display: block;
}

#myModal .modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}

#myModal .modal-content {
  position: relative;
  background: #fff;
  border: 1px solid rgb(0 0 0 / 20%);
  border-radius: 6px;
  outline: 0;
  box-shadow: 0 3px 9px rgb(0 0 0 / 50%);
}

#myModal .modal-header,
#myModal .modal-body,
#myModal .modal-footer {
  position: relative;
  padding: 15px;
}

#myModal .modal-header {
  border-bottom: 1px solid #e5e5e5;
}

#myModal .modal-footer {
  text-align: right;
  border-top: 1px solid #e5e5e5;
}

#myModal .modal-header::after,
#myModal .modal-footer::after {
  display: table;
  clear: both;
  content: '';
}

#myModal .modal-title {
  margin: 0;
  line-height: 1.42857143;
}

#myModal .close {
  float: right;
  padding: 0;
  border: 0;
  background: transparent;
  color: #000;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  opacity: 0.2;
  text-shadow: 0 1px 0 #fff;
}

#myModal .close:hover,
#myModal .close:focus {
  color: #000;
  text-decoration: none;
  opacity: 0.5;
}

/* Column-gallery lightbox trigger */
.photo-gallery-column a.photo-modal {
  position: relative;
  display: inline-block;
  max-width: 100%;
}

.photo-gallery-column a.photo-modal::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 35px;
  height: 35px;
  background: rgb(255 255 255 / 75%);
  content: '';
  transition: all 0.7s ease;
}

.photo-gallery-column a.photo-modal::after {
  position: absolute;
  top: 5px;
  left: 5px;
  z-index: 2;
  width: 35px;
  height: 35px;
  display: block;
  content: url('https://www.skidmore.edu/_images/icons/lightbox.png');
  transition: all 0.7s ease;
}

.photo-gallery-column a.photo-modal:hover::before,
.photo-gallery-column a.photo-modal:focus-visible::before {
  width: 100%;
  height: 100%;
}

.photo-gallery-column a.photo-modal:hover::after,
.photo-gallery-column a.photo-modal:focus-visible::after {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Column-gallery lightbox presentation */
#myModal.modal {
  background: rgb(0 0 0 / 60%);
  overflow-x: hidden;
  overflow-y: auto;
}

#myModal .modal-header {
  border-bottom: 0;
}

#myModal .modal-body {
  max-height: calc(100vh - 190px);
  overflow: auto;
  padding: 0 15px 15px;
  text-align: center;
}

#myModal .modal-body img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 260px);
  height: auto;
  margin: 20px auto;
}

#myModal .modal-body .caption {
  margin: 0 auto 15px;
  color: #fff;
  font-size: 1.6rem;
  line-height: 1.4;
}

#myModal .modal-body .caption p {
  margin: 0;
}

#myModal .modal-body .thumbnail-number {
  display: block;
  margin: 0 0 10px;
  color: #fff;
  font-size: 1.4rem;
}

#myModal .modal-content {
  max-width: 1400px;
  color: #fff;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

#myModal .modal-footer {
  clear: both;
  border-top: 1px solid rgb(255 255 255 / 20%);
  overflow: hidden;
}

#myModal .modal-footer a {
  color: #33c572;
  display: inline-block;
  padding: 0 15px 15px;
  text-decoration: none;
  vertical-align: middle;
}

/* Modal navigation links also carry .photo-modal, but should not
   receive the thumbnail lightbox overlay icon. */
#myModal .modal-footer a.photo-modal::before,
#myModal .modal-footer a.photo-modal::after {
  display: none !important;
  content: none !important;
}

#myModal .modal-footer a.left {
  float: left;
}

#myModal .modal-footer a.right {
  float: right;
}

#myModal .modal-footer .glyphicon {
  margin: 0 5px;
}

#myModal .modal-header .close {
  color: #fff;
  font-size: 30px;
  opacity: 1;
}

@media (min-width: 768px) {
  #myModal .modal-dialog {
    width: 100%;
    max-width: 1400px;
    margin: 30px auto;
  }
}

/* Bootstrap creates this class when the modal opens. */
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1040;
  background-color: #000;
}

.modal-backdrop.in {
  opacity: 0.5;
}

.ad-gallery .ad-thumbs .ad-thumb-list {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: max-content !important;
  white-space: nowrap;
}

.ad-gallery .ad-thumbs .ad-thumb-list > li {
  float: none !important;
  flex: 0 0 auto;
}

.ad-gallery .ad-thumbs {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
}