/*
|--------------------------------------------------------------------------
| Block: Inclusive Image Viewer
|--------------------------------------------------------------------------
*/

.inclusive-image-viewer {
  width: 100%;
}

.inclusive-image-viewer__thumb-wrap {
  position: relative;
  width: 100%;
  max-width: 336px;
  aspect-ratio: 336 / 189;
  margin: 0 auto;
  border-radius: 4px;
  overflow: hidden;
}

.inclusive-image-viewer__thumb-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* QA 211: l'immagine e' cliccabile in qualsiasi punto per espandere (il
   bottone resta il trigger accessibile da tastiera) */
.inclusive-image-viewer__thumb-image {
  cursor: pointer;
}

.inclusive-image-viewer__open {
  position: absolute;
  right: 4px;
  bottom: 4px;
  width: 24px;
  height: 24px;
  border-radius: 4px;
  background: #fff;
  color: var(--color-secondary-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer; /* QA 210 */
}

.inclusive-image-viewer__open .material-symbols-outlined {
  font-size: 16px;
  line-height: 16px;
}

/* QA 212/214: il lightbox occupa tutta la viewport a ogni breakpoint (master
   libreria 15006:3281/3482): chiudi in alto, immagine grande al centro che si
   adatta allo spazio, CTA ai lati e didascalia in fondo alla viewport. */
.inclusive-image-viewer__modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(0, 0, 0, 0.9);
  padding: 18px 12px;
  display: flex;
  justify-content: center;
}

.inclusive-image-viewer__modal.hidden {
  display: none;
}

.inclusive-image-viewer__dialog {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  outline: none;
}

.inclusive-image-viewer__topbar {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.inclusive-image-viewer__close {
  border: 0;
  background: transparent;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 0;
  min-height: 44px;
  cursor: pointer; /* QA 213 */
}

.inclusive-image-viewer__close-text {
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.inclusive-image-viewer__close .material-symbols-outlined {
  font-size: 24px;
  line-height: 24px;
}

/* Lo stage assorbe lo spazio residuo della viewport; l'immagine si mostra
   intera (contain, senza crop) grande quanto lo spazio consente. */
.inclusive-image-viewer__stage {
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.inclusive-image-viewer__slide {
  width: 100%;
  height: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.inclusive-image-viewer__slide.hidden {
  display: none;
}

.inclusive-image-viewer__slide-image {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  border-radius: 4px;
  box-shadow: 0 37.5px 75px -18px rgba(0, 0, 0, 0.25);
}

/* CTA di scorrimento ai bordi della viewport, contatore al centro */
.inclusive-image-viewer__controls {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.inclusive-image-viewer__nav {
  border: 1px solid #e6e6e6;
  border-radius: 4px;
  background: #fff;
  color: var(--color-primary-dark);
  min-height: 44px;
  padding: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  cursor: pointer; /* QA 210 */
}

.inclusive-image-viewer__nav:disabled {
  cursor: not-allowed;
}

.inclusive-image-viewer__nav:disabled {
  background: #f2f2f2;
  color: #666;
}

.inclusive-image-viewer__nav .material-symbols-outlined {
  font-size: 24px;
  line-height: 24px;
}

.inclusive-image-viewer__nav-text {
  display: none;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.inclusive-image-viewer__counter {
  margin: 0;
  color: #fff;
  font-size: 16px;
  line-height: 24px;
  min-width: 36px;
  text-align: center;
}

/* Didascalia in fondo alla viewport: full width su mobile, box centrato a
   misura di contenuto da tablet in su (come i master della libreria) */
.inclusive-image-viewer__caption {
  margin: 0;
  width: 100%;
  padding: 12px 7px;
  background: #000;
  color: #fff;
  font-size: 16px;
  line-height: 24px;
  text-align: center;
}

.inclusive-image-viewer__controls.hidden,
.inclusive-image-viewer__caption.hidden {
  display: none;
}

@media (min-width: 768px) and (max-width: 1279px) {
  .inclusive-image-viewer__thumb-wrap {
    max-width: 712px;
    aspect-ratio: 712 / 401;
  }

  .inclusive-image-viewer__open {
    right: 10px;
    bottom: 10px;
    width: 40px;
    height: 40px;
    border-radius: 8px;
  }

  .inclusive-image-viewer__open .material-symbols-outlined {
    font-size: 24px;
    line-height: 24px;
  }

  .inclusive-image-viewer__modal {
    padding: 18px 28px;
  }

  .inclusive-image-viewer__caption {
    width: fit-content;
    padding: 12px 11px;
  }
}

@media (min-width: 1280px) {
  .inclusive-image-viewer__thumb-wrap {
    max-width: 912px;
    aspect-ratio: 912 / 513;
  }

  .inclusive-image-viewer__open {
    right: 10px;
    bottom: 10px;
    width: 48px;
    height: 48px;
    border-radius: 8px;
  }

  .inclusive-image-viewer__open .material-symbols-outlined {
    font-size: 24px;
    line-height: 24px;
  }

  .inclusive-image-viewer__modal {
    padding: 16px 28px;
  }

  .inclusive-image-viewer__nav {
    padding: 10px 28px;
  }

  .inclusive-image-viewer__nav-text {
    display: inline;
  }

  .inclusive-image-viewer__caption {
    width: fit-content;
    padding: 12px 11px;
  }
}
