/**
 * CAGP Full Width Image
 * ---------------------------------------
 * Supports:
 * 1. CKEditor uploaded images (.full-width-image)
 * 2. Captioned images
 * 3. Drupal Media "Full width" view mode
 */

/* Prevent horizontal scrolling */
html,
body {
  overflow-x: hidden;
}

/* -------------------------------------------------------
   CKEditor Uploaded Images
------------------------------------------------------- */

.full-width-image {
  display: block;
  width: 100vw;
  max-width: 100vw;
  height: auto !important;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* -------------------------------------------------------
   Captioned Images
------------------------------------------------------- */

figure:has(> .full-width-image),
figure:has(.full-width-image) {
  width: 100vw;
  max-width: 100vw;
  margin: 0 calc(50% - 50vw) 1rem;
  padding: 0;
}

figure:has(.full-width-image) .full-width-image {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

figure:has(.full-width-image) figcaption {
  padding: .75rem 1rem;
  text-align: center;
}

/* -------------------------------------------------------
   Drupal Media Full Width View Mode
------------------------------------------------------- */

.media--view-mode-full-width {
  display: block;
  position: relative;

  width: 100vw;
  max-width: 100vw;

  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 1rem;

  overflow: hidden;
}

/* All wrapper elements */

.media--view-mode-full-width,
.media--view-mode-full-width > div,
.media--view-mode-full-width > div > div,
.media--view-mode-full-width .field,
.media--view-mode-full-width .field__item,
.media--view-mode-full-width picture {
  width: 100%;
  max-width: 100%;
  height: auto !important;
  margin: 0;
  padding: 0;
  display: block;
}

/* Image */

.media--view-mode-full-width img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto !important;

  object-fit: contain;

  margin: 0;
  padding: 0;
}

/* Override Drupal width/height attributes */

.media--view-mode-full-width img[width],
.media--view-mode-full-width img[height],
.full-width-image[width],
.full-width-image[height] {
  width: 100%;
  height: auto !important;
}

/* Linked images */

.media--view-mode-full-width a {
  display: block;
}

/* -------------------------------------------------------
   Mobile
------------------------------------------------------- */

@media (max-width: 768px) {

  .full-width-image,
  .media--view-mode-full-width,
  figure:has(.full-width-image) {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

}

/* -------------------------------------------------------
   CKEditor Preview
------------------------------------------------------- */

.ck-content .full-width-image,
.ck-content .media--view-mode-full-width {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.ck-content img {
  max-width: 100%;
  height: auto !important;
}