.zgw-gallery,
.zgw-artist-bio {
  --zgw-ink: #232323;
  --zgw-muted: #666;
  --zgw-line: #d7d7d7;
  --zgw-accent: #8b2026;
  color: var(--zgw-ink);
}

.zgw-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: 0 0 1.5rem;
}

.zgw-filters button {
	appearance: none;
	background: var(--zgw-filter-button-background, #fff);
	background-image: var(--zgw-filter-button-gradient, none);
	border: var(--zgw-filter-button-border-width, 1px) solid var(--zgw-filter-button-border-color, var(--zgw-line));
	border-radius: var(--zgw-filter-button-radius, 2px);
	color: var(--zgw-filter-button-color, var(--zgw-ink));
	cursor: pointer;
	font-family: inherit;
	font-size: var(--zgw-filter-button-font-size, 16px);
	line-height: 1.25;
	padding: var(--zgw-filter-button-padding-y, 9px) var(--zgw-filter-button-padding-x, 15px);
}

.zgw-filters button:hover,
.zgw-filters button:focus-visible,
.zgw-filters button.is-active {
	background: var(--zgw-filter-button-active-background, var(--zgw-ink));
	border-color: var(--zgw-filter-button-active-background, var(--zgw-ink));
	color: var(--zgw-filter-button-active-color, #fff);
}
.zgw-filters button:hover,
.zgw-filters button:focus-visible,
.zgw-filters button.is-active { background-image: var(--zgw-filter-button-active-gradient, none); }

.zgw-filters button:focus-visible,
.zgw-card-open:focus-visible,
.zgw-lightbox button:focus-visible {
  outline: 3px solid #4b9cd3;
  outline-offset: 3px;
}

.zgw-grid {
  display: grid;
  gap: var(--zgw-row-gap, 2rem) var(--zgw-column-gap, 1.35rem);
  grid-template-columns: repeat(var(--zgw-desktop, 3), minmax(0, 1fr));
}

.zgw-group + .zgw-group { margin-top: 2.5rem; }
.zgw-group-heading { margin: 0 0 1rem; }
.zgw-card[hidden], .zgw-group[hidden], .zgw-empty[hidden], .zgw-lightbox[hidden] { display: none !important; }
.zgw-card {
  background: var(--zgw-card-background, transparent);
  border: var(--zgw-card-border-width, 0) solid var(--zgw-card-border-color, transparent);
  border-radius: var(--zgw-card-radius, 0);
  overflow: hidden;
  padding: var(--zgw-card-padding, 0);
}

.zgw-card-open {
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: block;
  font: inherit;
  padding: 0;
  text-align: left;
	width: 100%;
}

.zgw-filters button:not(.is-active) { background-image: var(--zgw-filter-button-gradient, none); }
.zgw-filters button.is-active,
.zgw-filters button:hover,
.zgw-filters button:focus-visible {
	background-image: var(--zgw-filter-button-active-gradient, none);
}

.zgw-image-wrap {
	align-items: var(--zgw-image-align, center);
	background: var(--zgw-image-background, #f2f1ef);
	display: flex;
	justify-content: center;
  margin-bottom: .85rem;
  min-height: 12rem;
  overflow: hidden;
}

.zgw-card-image { display: block; height: auto; transition: transform .2s ease; width: 100%; }
.zgw-card-open:hover .zgw-card-image { transform: scale(1.015); }
.zgw-card-text { display: block; }
.zgw-card-title { color: var(--zgw-title-color, #232323); display: block; font-family: var(--zgw-title-font, inherit); font-size: var(--zgw-title-size, 1.06rem); font-weight: var(--zgw-title-weight, 700); line-height: 1.3; margin-bottom: .4rem; text-align: var(--zgw-title-align, left); text-transform: var(--zgw-title-transform, none); }
.zgw-status { border: var(--zgw-status-border-width, 1px) solid currentColor; border-radius: var(--zgw-status-radius, 0); display: inline-block; font-size: var(--zgw-status-size, .78rem); font-weight: var(--zgw-status-weight, 700); letter-spacing: .035em; line-height: 1; margin-bottom: .55rem; padding: .35rem .48rem; text-transform: var(--zgw-status-transform, uppercase); }
.zgw-status-available { background: var(--zgw-available-background, #fff); border-color: var(--zgw-available-border-color, var(--zgw-available-color, #232323)); color: var(--zgw-available-color, #232323); }
.zgw-status-sold { background: var(--zgw-sold-background, #fff); border-color: var(--zgw-sold-border-color, var(--zgw-sold-color, #6a6262)); color: var(--zgw-sold-color, #6a6262); }
.zgw-status-on_hold { background: var(--zgw-on-hold-background, #fff); border-color: var(--zgw-on-hold-border-color, var(--zgw-on-hold-color, #8a5b00)); color: var(--zgw-on-hold-color, #8a5b00); }
.zgw-status-not_for_sale { background: var(--zgw-not-for-sale-background, #fff); border-color: var(--zgw-not-for-sale-border-color, var(--zgw-not-for-sale-color, #555)); color: var(--zgw-not-for-sale-color, #555); }
.zgw-meta { color: var(--zgw-muted); display: block; font-size: .92rem; line-height: 1.45; margin: .12rem 0; }
.zgw-image-placeholder { color: var(--zgw-muted); padding: 3rem 1rem; text-align: center; }
.zgw-empty { background: #f6f6f6; padding: 1rem; }

body.zgw-lightbox-open { overflow: hidden; }
.zgw-lightbox { inset: 0; position: fixed; z-index: 100000; }
.zgw-lightbox-backdrop { background: rgba(0,0,0,.86); inset: 0; position: absolute; }
.zgw-lightbox-panel { align-items: center; display: flex; inset: 0; justify-content: center; padding: 4rem 5rem 2rem; pointer-events: none; position: absolute; }
.zgw-lightbox-content { background: #fff; max-height: calc(100vh - 6rem); max-width: 1100px; overflow: auto; pointer-events: auto; width: 100%; }
.zgw-lightbox-artwork { display: grid; grid-template-columns: minmax(0, 2fr) minmax(16rem, .85fr); }
.zgw-lightbox-media { align-items: center; background: #111; display: flex; justify-content: center; min-height: 60vh; }
.zgw-lightbox-image { display: block; height: auto; max-height: calc(100vh - 6rem); object-fit: contain; width: 100%; }
.zgw-lightbox-details { padding: 2rem; }
.zgw-lightbox-details h2 { color: var(--zgw-title-color, #232323); font-family: var(--zgw-title-font, inherit); font-size: var(--zgw-title-size, 1.55rem); font-weight: var(--zgw-title-weight, 700); letter-spacing: var(--zgw-lightbox-title-letter-spacing, 0px) !important; line-height: 1.25; margin: 0 0 .8rem; text-align: var(--zgw-title-align, left); text-transform: var(--zgw-title-transform, none); }
.zgw-lightbox button { align-items: center; appearance: none; background: #fff; border: 0; border-radius: 50%; color: #111; cursor: pointer; display: flex; font-family: Arial, sans-serif; justify-content: center; line-height: 1; pointer-events: auto; position: absolute; }
.zgw-lightbox-close { font-size: var(--zgw-lightbox-close-icon-size, 25px); height: var(--zgw-lightbox-close-size, 40px); right: var(--zgw-lightbox-close-offset, 12px); top: var(--zgw-lightbox-close-offset, 12px); width: var(--zgw-lightbox-close-size, 40px); }
.zgw-lightbox-prev, .zgw-lightbox-next { font-size: var(--zgw-lightbox-nav-icon-size, 28px); height: var(--zgw-lightbox-nav-size, 44px); padding: 0 0 .08em; top: 50%; transform: translateY(-50%); width: var(--zgw-lightbox-nav-size, 44px); }
.zgw-lightbox-prev { left: var(--zgw-lightbox-nav-offset, 12px); }
.zgw-lightbox-next { right: var(--zgw-lightbox-nav-offset, 12px); }
.zgw-gallery .zgw-sold-group > .zgw-group-heading { font-weight: var(--zgw-sold-heading-weight, 700); }

.zgw-match-artwork-height .zgw-grid { align-items: stretch; }
.zgw-match-artwork-height .zgw-card { display: flex; flex-direction: column; }
.zgw-match-artwork-height .zgw-card-open { display: flex; flex: 1 1 auto; flex-direction: column; }
.zgw-match-artwork-height .zgw-image-wrap { flex: 1 1 auto; }
.zgw-bio-heading { margin: 0 0 1rem; }
.zgw-bio-body > :first-child { margin-top: 0; }
.zgw-bio-body > :last-child { margin-bottom: 0; }

@media (max-width: 980px) {
  .zgw-grid { grid-template-columns: repeat(var(--zgw-tablet, 2), minmax(0, 1fr)); }
  .zgw-lightbox-artwork { grid-template-columns: 1fr; }
  .zgw-lightbox-media { min-height: 0; }
  .zgw-lightbox-details { padding: 1.35rem; }
}

@media (max-width: 600px) {
  .zgw-grid { grid-template-columns: repeat(var(--zgw-phone, 1), minmax(0, 1fr)); }
  .zgw-lightbox-panel { padding: 3.5rem .65rem 4.5rem; }
  .zgw-lightbox-content { max-height: calc(100vh - 8rem); }
  .zgw-lightbox-prev, .zgw-lightbox-next { bottom: .5rem; top: auto; transform: none; }
  .zgw-lightbox-prev { left: calc(50% - var(--zgw-lightbox-nav-size, 44px) - .5rem); }
  .zgw-lightbox-next { right: calc(50% - var(--zgw-lightbox-nav-size, 44px) - .5rem); }
}

@media (prefers-reduced-motion: reduce) {
  .zgw-card-image { transition: none; }
}
