.agwp-gallery-slide {
  position: relative;
}

.agwp-gallery-slide > a {
  display: block;
  cursor: default;
}

.agwp-preview {
  --agwp-left: 50%;
  --agwp-top: 35%;
  --agwp-max-width: 720px;
  --agwp-gap: 6%;
  --agwp-base-item-width: 15%;
  --agwp-size-scale: 1;
  --agwp-product-scale: 1;
  --agwp-item-width: calc(var(--agwp-base-item-width) * var(--agwp-size-scale) * var(--agwp-product-scale));
  --agwp-frame-color: #111;
  --agwp-frame-inner-line: rgba(255, 255, 255, 0.28);
  --agwp-frame-shadow-color: rgba(0, 0, 0, 0.28);
  --agwp-frame-padding: clamp(3px, 2.8%, 14px);
  position: relative;
  width: 100%;
  max-width: var(--agwp-max-width);
  margin: 0 auto;
  overflow: hidden;
  background: #f7f5f2;
}

.agwp-preview__room {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
}

.agwp-preview__group {
  position: absolute;
  left: var(--agwp-left);
  top: var(--agwp-top);
  width: 100%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--agwp-gap-vertical, var(--agwp-gap)) var(--agwp-gap-horizontal, var(--agwp-gap));
  transition: width 0.25s ease, left 0.25s ease, top 0.25s ease;
}

/*
 * Each print uses the same base size as the single-print plugin.
 * Landscape is the same physical size rotated: wider and shorter.
 */
.agwp-preview__item {
  position: relative;
  min-width: 0;
  width: var(--agwp-item-width);
  flex: 0 0 auto;
}

.agwp-preview__item.agwp-item-landscape {
  width: calc(var(--agwp-item-width) * 1.5);
}

/* 2 portrait side by side */
.agwp-preview.agwp-layout-set-2-portrait-row .agwp-preview__group {
  flex-direction: row;
}

/* 2 landscape stacked / 3 landscape stacked */
.agwp-preview.agwp-layout-set-2-landscape-stack .agwp-preview__group,
.agwp-preview.agwp-layout-set-3-landscape-stack .agwp-preview__group {
  flex-direction: column;
}

/* 3-print row layouts */
.agwp-preview.agwp-layout-set-3-portrait-row .agwp-preview__group,
.agwp-preview.agwp-layout-set-3-p-l-p .agwp-preview__group,
.agwp-preview.agwp-layout-set-3-l-p-l .agwp-preview__group {
  flex-direction: row;
}

/* In the landscape / portrait / landscape layout, lower the portrait slightly like the reference sketch. */
.agwp-preview.agwp-layout-set-3-l-p-l .agwp-item-portrait {
  transform: translateY(11%);
}

/* 4 portrait grid */
.agwp-preview.agwp-layout-set-4-grid .agwp-preview__group {
  width: calc((var(--agwp-item-width) * 2) + var(--agwp-gap-horizontal, var(--agwp-gap)));
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
}

.agwp-preview.agwp-layout-set-4-grid .agwp-preview__item {
  width: calc((100% - var(--agwp-gap-horizontal, var(--agwp-gap))) / 2);
  flex: 0 0 calc((100% - var(--agwp-gap-horizontal, var(--agwp-gap))) / 2);
}

.agwp-preview.agwp-layout-auto.agwp-count-4 .agwp-preview__group {
  width: calc((var(--agwp-item-width) * 2) + var(--agwp-gap-horizontal, var(--agwp-gap)));
  flex-wrap: wrap;
}

.agwp-preview.agwp-layout-auto.agwp-count-4 .agwp-preview__item {
  width: calc((100% - var(--agwp-gap-horizontal, var(--agwp-gap))) / 2);
  flex: 0 0 calc((100% - var(--agwp-gap-horizontal, var(--agwp-gap))) / 2);
}

.agwp-preview__outer-frame {
  position: relative;
  width: 100%;
  background: var(--agwp-frame-color);
  padding: var(--agwp-frame-padding);
  box-sizing: content-box;
  box-shadow: 0 10px 22px var(--agwp-frame-shadow-color), inset 0 0 0 1px var(--agwp-frame-inner-line);
}

.agwp-preview__outer-frame::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,0.22), transparent 32%), linear-gradient(315deg, rgba(0,0,0,0.14), transparent 42%);
  opacity: 0.45;
}

.agwp-preview__art-window {
  position: relative;
  z-index: 1;
  width: 100%;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.07);
}

.agwp-preview__artwork {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: unset !important;
  margin: 0 !important;
  background: #fff;
}

.agwp-preview.agwp-size-small { --agwp-base-item-width: 15%; }
.agwp-preview.agwp-size-medium { --agwp-base-item-width: 20%; }
.agwp-preview.agwp-size-large { --agwp-base-item-width: 25%; }
.agwp-preview.agwp-size-x-large { --agwp-base-item-width: 35%; }
.agwp-preview.agwp-size-statement { --agwp-base-item-width: 40%; }

.agwp-preview.agwp-frame-black {
  --agwp-frame-color: #111;
  --agwp-frame-inner-line: rgba(255,255,255,0.20);
  --agwp-frame-shadow-color: rgba(0,0,0,0.30);
}

.agwp-preview.agwp-frame-white {
  --agwp-frame-color: #f1eee8;
  --agwp-frame-inner-line: rgba(160,150,135,0.22);
  --agwp-frame-shadow-color: rgba(0,0,0,0.20);
}

.agwp-preview.agwp-frame-oak {
  --agwp-frame-color: #d8b990;
  --agwp-frame-inner-line: rgba(110,80,45,0.16);
  --agwp-frame-shadow-color: rgba(0,0,0,0.24);
}

.agwp-preview.agwp-frame-oak .agwp-preview__outer-frame {
  background: #d8b990;
}

.agwp-preview.agwp-frame-oak .agwp-preview__outer-frame::before {
  display: none;
}

.agwp-preview.agwp-frame-none {
  --agwp-frame-padding: 0px;
}

.agwp-preview.agwp-frame-none .agwp-preview__outer-frame {
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.agwp-preview.agwp-frame-none .agwp-preview__outer-frame::before {
  display: none;
}

.agwp-preview.agwp-frame-none .agwp-preview__art-window {
  box-shadow: 0 0 0 1px rgba(0,0,0,0.06);
}


/* Custom zoom modal for the dynamic gallery wall preview */
.agwp-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(0, 0, 0, 0.72);
  box-sizing: border-box;
}

.agwp-modal.agwp-modal-open {
  display: flex;
}

.agwp-modal__inner {
  position: relative;
  width: min(96vw, 1400px);
  max-height: 94vh;
  overflow: auto;
  background: #fff;
}

.agwp-modal__inner .agwp-preview {
  max-width: none !important;
  width: 100% !important;
}

.agwp-modal__inner .agwp-preview__room {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

.agwp-modal__close {
  position: fixed;
  top: 18px;
  right: 22px;
  z-index: 1000000;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #111;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}


/* v0.1.13: robust separated gap handling without changing print scale */
.agwp-preview.agwp-layout-set-2-portrait-row .agwp-preview__group,
.agwp-preview.agwp-layout-set-3-portrait-row .agwp-preview__group,
.agwp-preview.agwp-layout-set-3-p-l-p .agwp-preview__group,
.agwp-preview.agwp-layout-set-3-l-p-l .agwp-preview__group {
  gap: 0 var(--agwp-gap-horizontal, var(--agwp-gap)) !important;
}

.agwp-preview.agwp-layout-set-2-landscape-stack .agwp-preview__group,
.agwp-preview.agwp-layout-set-3-landscape-stack .agwp-preview__group {
  gap: var(--agwp-gap-vertical, var(--agwp-gap)) 0 !important;
}

/* Grid layouts need a definite group width, otherwise percentage columns can shrink. */
.agwp-preview.agwp-layout-set-4-grid .agwp-preview__group,
.agwp-preview.agwp-layout-auto.agwp-count-4 .agwp-preview__group {
  display: grid !important;
  width: calc((var(--agwp-item-width) * 2) + var(--agwp-gap-horizontal, var(--agwp-gap))) !important;
  grid-template-columns: calc((100% - var(--agwp-gap-horizontal, var(--agwp-gap))) / 2) calc((100% - var(--agwp-gap-horizontal, var(--agwp-gap))) / 2);
  column-gap: var(--agwp-gap-horizontal, var(--agwp-gap)) !important;
  row-gap: var(--agwp-gap-vertical, var(--agwp-gap)) !important;
  justify-items: stretch;
  align-items: center;
  justify-content: center;
  align-content: center;
}

.agwp-preview.agwp-layout-set-4-grid .agwp-preview__item,
.agwp-preview.agwp-layout-auto.agwp-count-4 .agwp-preview__item {
  width: 100% !important;
  flex: none !important;
}

.agwp-preview.agwp-layout-set-4-grid .agwp-preview__item.agwp-item-landscape,
.agwp-preview.agwp-layout-auto.agwp-count-4 .agwp-preview__item.agwp-item-landscape {
  width: 100% !important;
}


/* v0.1.14: force vertical spacing for stacked landscape layouts */
.agwp-preview.agwp-layout-set-2-landscape-stack .agwp-preview__group,
.agwp-preview.agwp-layout-set-3-landscape-stack .agwp-preview__group {
  gap: 0 !important;
  row-gap: 0 !important;
}

.agwp-preview.agwp-layout-set-2-landscape-stack .agwp-preview__item + .agwp-preview__item,
.agwp-preview.agwp-layout-set-3-landscape-stack .agwp-preview__item + .agwp-preview__item {
  margin-top: var(--agwp-gap-vertical, var(--agwp-gap)) !important;
}
