.asppa-filter-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid #dfe3e8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(17, 19, 24, .12);
}

.asppa-filter-form label {
  display: grid;
  gap: 5px;
}

.asppa-filter-form span {
  color: #68707d;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.asppa-filter-form select,
.asppa-filter-form input {
  min-height: 44px;
  width: 100%;
  border: 1px solid #dfe3e8;
  border-radius: 8px;
  background: #fbfcfd;
  color: #111318;
  padding: 0 10px;
}

.asppa-filter-form button {
  align-self: end;
  min-height: 44px;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  color: #fff;
  background: #111318;
  font-weight: 800;
  cursor: pointer;
}

.asppa-filter-form--compact {
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
}

.asppa-filter-form--compact button {
  width: 100%;
}

.asppa-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 18px;
}

.asppa-card-grid--large {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asppa-card-grid--compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.asppa-filter-form + .asppa-card-grid {
  margin-top: 28px;
}

.asppa-filter-form + .asppa-gallery-archive {
  margin-top: 28px;
}

.asppa-gallery-archive {
  position: relative;
  scroll-margin-top: 120px;
}

.asppa-gallery-archive.is-loading::after {
  position: absolute;
  inset: auto 0 -8px;
  height: 3px;
  content: "";
  background: linear-gradient(90deg, transparent, #d71920, transparent);
  animation: asppa-archive-loading 1s linear infinite;
}

@keyframes asppa-archive-loading {
  from { transform: translateX(-45%); }
  to { transform: translateX(45%); }
}

.asppa-archive-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 30px;
}

.asppa-archive-pagination--left {
  justify-content: flex-start;
}

.asppa-archive-pagination--center {
  justify-content: center;
}

.asppa-archive-pagination--right {
  justify-content: flex-end;
}

.asppa-archive-pagination a,
.asppa-archive-pagination__status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 0 13px;
  border: 1px solid #dfe3e8;
  border-radius: 999px;
  color: #111318;
  background: #fff;
  font-size: 13px;
  font-weight: 850;
}

.asppa-archive-pagination a.is-active {
  border-color: #111318;
  color: #fff;
  background: #111318;
}

.asppa-archive-pagination--load_more .asppa-archive-pagination__next,
.asppa-archive-pagination--infinite .asppa-archive-pagination__next {
  min-width: 190px;
}

.asppa-archive-pagination--infinite .asppa-archive-pagination__next {
  opacity: .72;
}

.asppa-gallery-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border: 1px solid #dfe3e8;
  border-radius: 8px;
  background: #fff;
}

.asppa-gallery-card__media {
  display: grid;
  min-height: 270px;
  place-items: center;
  overflow: hidden;
  background: #f6f7f8;
}

.asppa-gallery-card--large .asppa-gallery-card__media,
.asppa-gallery-card--large .asppa-gallery-card__media img {
  min-height: 360px;
}

.asppa-gallery-card--compact .asppa-gallery-card__media,
.asppa-gallery-card--compact .asppa-gallery-card__media img {
  min-height: 190px;
}

.asppa-gallery-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 270px;
  object-fit: cover;
  transition: transform .35s ease;
}

.asppa-gallery-card:hover .asppa-gallery-card__media img {
  transform: scale(1.04);
}

.asppa-gallery-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px;
}

.asppa-gallery-card--compact .asppa-gallery-card__body {
  padding: 14px;
}

.asppa-gallery-card--compact h3 {
  font-size: 17px;
}

.asppa-gallery-card--minimal .asppa-gallery-card__body p:not(.asppa-gallery-card__meta) {
  display: none;
}

.asppa-gallery-card__meta {
  margin: 0 0 8px;
  color: #d71920;
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}

.asppa-gallery-card h3 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.15;
}

.asppa-gallery-card p:last-child {
  margin-bottom: 0;
}

.asppa-gallery-card__count {
  margin-top: auto;
}

.asppa-photo-grid {
  --asppa-gallery-columns: 3;
  --asppa-gallery-gap: 14px;
  --asppa-gallery-min-size: 180px;
  --asppa-gallery-card-width: max(var(--asppa-gallery-min-size), calc((100% - ((var(--asppa-gallery-columns) - 1) * var(--asppa-gallery-gap))) / var(--asppa-gallery-columns)));
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--asppa-gallery-card-width)), var(--asppa-gallery-card-width)));
  gap: var(--asppa-gallery-gap);
  justify-content: start;
  margin-top: 32px;
  width: 100%;
  align-items: start;
}

.asppa-gallery-view {
  scroll-margin-top: 110px;
}

.asppa-photo-grid--masonry {
  display: block;
  columns: var(--asppa-gallery-columns) var(--asppa-gallery-min-size);
  column-gap: var(--asppa-gallery-gap);
}

.asppa-photo-grid--slider {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 12px;
}

.asppa-photo-grid--slider .asppa-photo-grid__card {
  min-width: min(78vw, 860px);
  scroll-snap-align: start;
}

.asppa-photo-grid--justified {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.asppa-photo-grid--mosaic {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: dense;
  grid-auto-rows: clamp(150px, 15vw, 230px);
  justify-content: stretch;
}

.asppa-photo-grid--mosaic .asppa-photo-grid__card {
  display: grid;
  grid-column: span 4;
  grid-template-rows: minmax(0, 1fr) auto;
  margin: 0;
}

.asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 1) {
  grid-column: span 8;
  grid-row: span 2;
}

.asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 4),
.asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 6) {
  grid-column: span 6;
}

.asppa-photo-grid--mosaic .asppa-photo-grid__item,
.asppa-photo-grid--magazine .asppa-photo-grid__item,
.asppa-photo-grid--compact .asppa-photo-grid__item,
.asppa-photo-grid--cinematic .asppa-photo-grid__item {
  height: 100%;
}

.asppa-photo-grid--mosaic .asppa-photo-grid__item img,
.asppa-photo-grid--magazine .asppa-photo-grid__item img,
.asppa-photo-grid--compact .asppa-photo-grid__item img,
.asppa-photo-grid--cinematic .asppa-photo-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.asppa-photo-grid--magazine {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  justify-content: stretch;
}

.asppa-photo-grid--magazine .asppa-photo-grid__card {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  margin: 0;
}

.asppa-photo-grid--magazine .asppa-photo-grid__card:first-child {
  grid-column: 1 / -1;
}

.asppa-photo-grid--magazine .asppa-photo-grid__item {
  aspect-ratio: 3 / 2;
}

.asppa-photo-grid--magazine .asppa-photo-grid__card:first-child .asppa-photo-grid__item {
  aspect-ratio: 16 / 7;
}

.asppa-photo-grid--compact {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--asppa-gallery-min-size)), 1fr));
  justify-content: stretch;
}

.asppa-photo-grid--compact .asppa-photo-grid__card,
.asppa-photo-grid--cinematic .asppa-photo-grid__card {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  margin: 0;
}

.asppa-photo-grid--compact .asppa-photo-grid__item {
  aspect-ratio: 1;
}

.asppa-photo-grid--compact .asppa-photo-grid__caption {
  padding: 9px;
}

.asppa-photo-grid--compact .asppa-photo-grid__caption strong,
.asppa-photo-grid--compact .asppa-photo-grid__caption span {
  font-size: 11px;
}

.asppa-photo-grid--cinematic {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(320px, var(--asppa-gallery-min-size))), 1fr));
  justify-content: stretch;
}

.asppa-photo-grid--cinematic .asppa-photo-grid__item {
  aspect-ratio: 16 / 9;
}

.asppa-photo-grid__card {
  break-inside: avoid;
  margin: 0 0 14px;
  overflow: hidden;
  border: 1px solid #dfe3e8;
  border-radius: 8px;
  background: #fff;
}

.asppa-photo-grid__item {
  position: relative;
  display: block;
  overflow: hidden;
  background: #f6f7f8;
}

.asppa-photo-grid--grid .asppa-photo-grid__item {
  aspect-ratio: 3 / 2;
}

.asppa-photo-grid__item img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .28s ease, filter .28s ease;
}

.asppa-photo-grid--grid .asppa-photo-grid__item img {
  height: 100%;
  object-fit: cover;
}

.asppa-photo-grid__item:hover img {
  transform: scale(1.025);
  filter: contrast(1.05);
}

.asppa-watermark {
  position: absolute;
  inset: var(--asppa-watermark-inset, 12px);
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  overflow: hidden;
  color: var(--asppa-watermark-color, #fff);
  font-size: var(--asppa-watermark-size, 22px);
  line-height: 1.2;
  opacity: var(--asppa-watermark-opacity, .55);
  pointer-events: none;
  text-shadow: 0 1px 4px rgba(0,0,0,.55);
}

.asppa-watermark__mark {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: .45em;
  max-width: 100%;
  font-weight: 700;
  text-align: right;
}

.asppa-watermark__mark > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.asppa-watermark__mark img,
.asppa-photo-grid__item .asppa-watermark__mark img {
  width: var(--asppa-watermark-logo-width, 180px);
  max-width: 50%;
  height: auto;
  max-height: 54px;
  object-fit: contain;
  transform: none;
  filter: none;
}

.asppa-watermark--top-left {
  align-items: flex-start;
  justify-content: flex-start;
}

.asppa-watermark--top-right {
  align-items: flex-start;
}

.asppa-watermark--bottom-left {
  justify-content: flex-start;
}

.asppa-watermark--top-left .asppa-watermark__mark,
.asppa-watermark--bottom-left .asppa-watermark__mark {
  text-align: left;
}

.asppa-watermark--center {
  align-items: center;
  justify-content: center;
}

.asppa-watermark--repeat {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  justify-items: center;
  gap: 18px;
  transform: rotate(-14deg) scale(1.12);
}

.asppa-watermark--repeat .asppa-watermark__mark {
  max-width: 100%;
  font-size: .65em;
}

.asppa-watermark--font-serif {
  font-family: Georgia, "Times New Roman", serif;
}

.asppa-watermark--font-condensed {
  font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
}

.asppa-watermark--font-mono {
  font-family: Consolas, "Courier New", monospace;
}

.asppa-watermark--font-script {
  font-family: "Segoe Script", "Brush Script MT", cursive;
  font-style: italic;
}

.asppa-photo-grid__caption {
  display: grid;
  gap: 7px;
  padding: 12px;
}

.asppa-photo-grid__caption strong {
  color: #111318;
  font-size: 14px;
  line-height: 1.25;
}

.asppa-photo-grid__caption span {
  color: #68707d;
  font-size: 12px;
}

.asppa-photo-grid__downloads {
  display: grid;
  grid-template-columns: repeat(var(--asppa-download-count, 3), minmax(0, 1fr));
  gap: 4px;
  width: 100%;
}

.asppa-photo-grid__downloads a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 28px;
  padding: 0 4px;
  border: 1px solid #dfe3e8;
  border-radius: 999px;
  color: #111318;
  background: #f6f7f8;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.asppa-gallery-count {
  margin: 28px 0 -14px;
  color: #68707d;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.asppa-download-access {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 22px;
  padding: 14px;
  border: 1px solid #d8dde3;
  border-radius: 6px;
  background: #f6f7f8;
}

.asppa-download-access form {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.asppa-download-access input,
.asppa-download-access button,
.asppa-download-access__button {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #c8cdd3;
  border-radius: 4px;
}

.asppa-download-access button,
.asppa-download-access__button {
  display: inline-flex;
  align-items: center;
  color: #fff;
  background: #111318;
  font-weight: 750;
  cursor: pointer;
}

.asppa-download-access__error {
  color: #b42318;
  font-weight: 700;
}

.asppa-gallery-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 24px;
}

.asppa-gallery-pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid #dfe3e8;
  border-radius: 999px;
  color: #111318;
  background: #fff;
  font-weight: 850;
}

.asppa-gallery-pagination--dots a {
  min-width: 22px;
  min-height: 22px;
  padding: 0;
  font-size: 24px;
  line-height: 1;
}

.asppa-gallery-pagination a.is-active {
  color: #fff;
  background: #111318;
  border-color: #111318;
}

.asppa-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  grid-template-rows: 58px minmax(0, 1fr) auto;
  color: #fff;
  background: rgba(7, 8, 10, .97);
}

.asppa-lightbox.is-open {
  display: grid;
}

.asppa-lightbox__topbar,
.asppa-lightbox__footer {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 10px 22px;
  background: rgba(7, 8, 10, .82);
}

.asppa-lightbox__counter {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
}

.asppa-lightbox__tools,
.asppa-lightbox__downloads {
  display: flex;
  align-items: center;
  gap: 7px;
}

.asppa-lightbox__stage {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  place-items: center;
  padding: 12px 78px;
  touch-action: pan-y;
}

.asppa-lightbox__watermark {
  position: absolute;
  inset: 12px 78px;
  pointer-events: none;
}

.asppa-lightbox__watermark .asppa-watermark {
  inset: 0;
}

.asppa-lightbox__stage > img {
  display: block;
  max-width: min(100%, 1600px);
  max-height: 100%;
  overflow: hidden;
  border-radius: var(--asppa-lightbox-image-radius, 12px);
  object-fit: contain;
  user-select: none;
}

.asppa-lightbox__footer {
  align-items: flex-end;
  min-height: 70px;
}

.asppa-lightbox__details {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.asppa-lightbox__title {
  color: #fff;
  font-size: 15px;
  font-weight: 800;
}

.asppa-lightbox__description {
  color: rgba(255,255,255,.82);
  font-size: 14px;
  line-height: 1.45;
}

.asppa-lightbox__byline,
.asppa-lightbox__rights {
  color: rgba(255,255,255,.7);
  font-size: 12px;
}

.asppa-lightbox__exif {
  color: rgba(255,255,255,.62);
  font-size: 12px;
}

.asppa-lightbox__close,
.asppa-lightbox__fullscreen,
.asppa-lightbox__prev,
.asppa-lightbox__next {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 50%;
  color: #fff;
  background: rgba(255,255,255,.08);
  cursor: pointer;
}

.asppa-lightbox__close,
.asppa-lightbox__fullscreen {
  width: 38px;
  height: 38px;
  font-size: 22px;
}

.asppa-lightbox__prev,
.asppa-lightbox__next {
  position: absolute;
  z-index: 3;
  top: 50%;
  transform: translateY(-50%);
  font-size: 32px;
}

.asppa-lightbox__prev {
  left: 22px;
}

.asppa-lightbox__next {
  right: 22px;
}

.asppa-lightbox__downloads a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.1);
  font-size: 12px;
  font-weight: 800;
}

.asppa-lightbox button:hover,
.asppa-lightbox__downloads a:hover {
  border-color: rgba(255,255,255,.6);
  background: rgba(255,255,255,.18);
}

.asppa-lightbox--style-light {
  color: #111318;
  background: rgba(244,246,248,.98);
}

.asppa-lightbox--style-light .asppa-lightbox__topbar,
.asppa-lightbox--style-light .asppa-lightbox__footer {
  background: rgba(255,255,255,.94);
}

.asppa-lightbox--style-light .asppa-lightbox__title {
  color: #111318;
}

.asppa-lightbox--style-light .asppa-lightbox__description,
.asppa-lightbox--style-light .asppa-lightbox__byline,
.asppa-lightbox--style-light .asppa-lightbox__rights,
.asppa-lightbox--style-light .asppa-lightbox__exif {
  color: #4c5562;
}

.asppa-lightbox--style-light button,
.asppa-lightbox--style-light .asppa-lightbox__downloads a {
  border-color: rgba(17,19,24,.22);
  color: #111318;
  background: rgba(17,19,24,.06);
}

.asppa-lightbox--style-minimal .asppa-lightbox__topbar,
.asppa-lightbox--style-minimal .asppa-lightbox__footer {
  background: transparent;
}

.asppa-lightbox--fit-cover .asppa-lightbox__stage {
  overflow: hidden;
  padding: 0;
}

.asppa-lightbox--fit-cover .asppa-lightbox__stage > img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
}

.asppa-lightbox--animation-fade .asppa-lightbox__stage > img,
.asppa-lightbox--animation-zoom .asppa-lightbox__stage > img {
  opacity: 0;
  transition: opacity .22s ease, transform .28s ease;
}

.asppa-lightbox--animation-zoom .asppa-lightbox__stage > img {
  transform: scale(.975);
}

.asppa-lightbox--animation-fade.is-image-ready .asppa-lightbox__stage > img,
.asppa-lightbox--animation-zoom.is-image-ready .asppa-lightbox__stage > img {
  opacity: 1;
  transform: scale(1);
}

.asppa-lightbox--footer-overlay {
  grid-template-rows: 58px minmax(0, 1fr);
}

.asppa-lightbox--footer-overlay .asppa-lightbox__stage {
  grid-row: 2;
}

.asppa-lightbox--footer-overlay .asppa-lightbox__footer {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(transparent, rgba(7,8,10,.9));
  padding-top: 54px;
}

.asppa-lightbox--footer-side {
  grid-template-rows: 58px minmax(0, 1fr);
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
}

.asppa-lightbox--footer-side .asppa-lightbox__topbar {
  grid-column: 1 / -1;
}

.asppa-lightbox--footer-side .asppa-lightbox__stage {
  grid-row: 2;
  grid-column: 1;
}

.asppa-lightbox--footer-side .asppa-lightbox__footer {
  grid-row: 2;
  grid-column: 2;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  overflow-y: auto;
  padding: 24px;
}

.asppa-lightbox--footer-side .asppa-lightbox__downloads {
  display: grid;
  grid-template-columns: repeat(var(--asppa-lightbox-download-count, 3), minmax(0, 1fr));
  width: 100%;
}

.asppa-lightbox--footer-side .asppa-lightbox__downloads a {
  min-width: 0;
  padding: 0 8px;
}

.asppa-photographers {
  display: grid;
  gap: 28px;
}

.asppa-photographers__intro {
  max-width: 760px;
}

.asppa-photographers__intro h1 {
  margin: 4px 0 10px;
}

.asppa-photographers__intro > p:last-child {
  color: var(--asppa-muted, #68707d);
}

.asppa-photographers__grid {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: var(--asppa-profile-gap, 22px);
}

.asppa-photographer-card {
  display: grid;
  min-width: 0;
  gap: 20px;
  padding: clamp(18px, 3vw, 32px);
  overflow: hidden;
  border: 1px solid var(--asppa-border, #dfe3e8);
  border-radius: var(--asppa-profile-radius, 8px);
  color: var(--asppa-text, #111318);
  background: var(--asppa-surface, #fff);
}

.asppa-photographer-card__header {
  display: grid;
  grid-template-columns: var(--asppa-profile-portrait, 144px) minmax(0, 1fr);
  align-items: center;
  gap: 22px;
  min-width: 0;
}

.asppa-photographer-card__header h2 {
  margin: 3px 0 12px;
  overflow-wrap: anywhere;
  font-size: 30px;
  line-height: 1.05;
}

.asppa-photographer-card__portrait {
  width: min(var(--asppa-profile-portrait, 144px), 100%);
  aspect-ratio: 4 / 5;
  border-radius: 6px;
  object-fit: cover;
  background: #e8ebef;
}

.asppa-photographer-card__portrait--placeholder {
  display: grid;
  place-items: center;
  color: #fff;
  background: #111318;
  font-size: 48px;
  font-weight: 850;
}

.asppa-photographer-card__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 26px;
  margin: 0;
}

.asppa-photographer-card__facts div {
  display: grid;
  gap: 2px;
}

.asppa-photographer-card__facts dt {
  color: var(--asppa-muted, #68707d);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.asppa-photographer-card__facts dd {
  margin: 0;
  font-weight: 750;
}

.asppa-photographer-card__bio {
  max-width: 900px;
  margin: 0;
  line-height: 1.65;
}

.asppa-photographer-card__custom-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
  gap: 10px 18px;
  margin: 0;
  padding: 14px 0;
  border-top: 1px solid var(--asppa-border, #dfe3e8);
  border-bottom: 1px solid var(--asppa-border, #dfe3e8);
}

.asppa-photographer-card__custom-fields div {
  display: grid;
  gap: 2px;
}

.asppa-photographer-card__custom-fields dt {
  color: var(--asppa-muted, #68707d);
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
}

.asppa-photographer-card__custom-fields dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-weight: 700;
}

.asppa-photographer-card__custom-fields a {
  color: var(--asppa-red, #d71920);
}

.asppa-photographer-card__series {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  gap: 7px;
}

.asppa-photographer-card__series span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 7px 10px;
  border: 1px solid var(--asppa-border, #dfe3e8);
  border-radius: 999px;
  color: var(--asppa-muted, #4c5562);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.2;
  overflow-wrap: anywhere;
  text-align: center;
}

.asppa-photographer-card__career {
  min-width: 0;
}

.asppa-photographer-card__career table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.asppa-photographer-card__career th,
.asppa-photographer-card__career td {
  padding: 11px 12px;
  border-bottom: 1px solid var(--asppa-border, #dfe3e8);
  overflow-wrap: anywhere;
  text-align: left;
  vertical-align: top;
}

.asppa-photographer-card__career th {
  color: var(--asppa-muted, #68707d);
  font-size: 11px;
  text-transform: uppercase;
}

.asppa-photographer-card__career th:first-child,
.asppa-photographer-card__career td:first-child {
  width: 24%;
}

.asppa-photographer-card__photos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 104px), 1fr));
  gap: 8px;
}

.asppa-photographer-card__photos .asppa-photo-grid__item {
  aspect-ratio: 4 / 3;
  min-height: 0;
  border-radius: 5px;
  overflow: hidden;
}

.asppa-photographer-card__photos img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.asppa-photographers--compact_grid .asppa-photographers__grid {
  grid-template-columns: repeat(var(--asppa-profile-columns, 2), minmax(0, 1fr));
}

.asppa-photographers--columns-1 {
  --asppa-profile-columns: 1;
}

.asppa-photographers--columns-2 {
  --asppa-profile-columns: 2;
}

.asppa-photographers--columns-3 {
  --asppa-profile-columns: 3;
}

.asppa-photographers--compact_grid .asppa-photographer-card {
  height: 100%;
  align-content: start;
  padding: 20px;
  gap: 16px;
  font-size: var(--asppa-profile-compact-scale, 86%);
}

.asppa-photographers--compact_grid .asppa-photographer-card__header {
  grid-template-columns: min(96px, var(--asppa-profile-portrait, 144px)) minmax(0, 1fr);
  gap: 15px;
}

.asppa-photographers--compact_grid .asppa-photographer-card__portrait {
  width: min(96px, var(--asppa-profile-portrait, 144px));
}

.asppa-photographers--compact_grid .asppa-photographer-card__header h2 {
  margin-bottom: 9px;
  font-size: 1.5em;
}

.asppa-photographers--compact_grid .asppa-photographer-card__header .eyebrow,
.asppa-photographers--compact_grid .asppa-photographer-card__facts dt,
.asppa-photographers--compact_grid .asppa-photographer-card__custom-fields dt,
.asppa-photographers--compact_grid .asppa-photographer-card__career th {
  font-size: .75em;
}

.asppa-photographers--compact_grid .asppa-photographer-card__facts {
  gap: 8px 16px;
}

.asppa-photographers--compact_grid .asppa-photographer-card__bio {
  line-height: 1.52;
}

.asppa-photographers--compact_grid .asppa-photographer-card__custom-fields {
  gap: 8px 14px;
  padding-block: 11px;
}

.asppa-photographers--compact_grid .asppa-photographer-card__series {
  gap: 6px;
}

.asppa-photographers--compact_grid .asppa-photographer-card__series span {
  min-height: 26px;
  padding: 5px 8px;
  font-size: .75em;
}

.asppa-photographers--compact_grid .asppa-photographer-card__career th,
.asppa-photographers--compact_grid .asppa-photographer-card__career td {
  padding: 9px 8px;
  line-height: 1.4;
}

.asppa-photographers--compact_grid .asppa-photographer-card__photos {
  align-self: end;
  margin-top: auto;
}

.asppa-photographers--editorial .asppa-photographer-card {
  grid-template-columns: minmax(180px, .62fr) minmax(0, 1.6fr);
  align-items: start;
}

.asppa-photographers--editorial .asppa-photographer-card__header {
  grid-row: 1 / span 5;
  grid-template-columns: 1fr;
  align-items: start;
}

.asppa-photographers--editorial .asppa-photographer-card__portrait {
  width: min(100%, var(--asppa-profile-portrait, 144px));
}

.asppa-photographers--editorial .asppa-photographer-card__bio,
.asppa-photographers--editorial .asppa-photographer-card__custom-fields,
.asppa-photographers--editorial .asppa-photographer-card__series,
.asppa-photographers--editorial .asppa-photographer-card__career,
.asppa-photographers--editorial .asppa-photographer-card__photos {
  grid-column: 2;
}

.asppa-photographers--minimal .asppa-photographer-card {
  padding-inline: 0;
  border-width: 0 0 1px;
  border-radius: 0;
  background: transparent;
}

.asppa-books,
.asppa-events {
  display: grid;
  gap: 30px;
}

.asppa-books__intro,
.asppa-events__intro {
  max-width: 760px;
}

.asppa-books__grid {
  display: grid;
  grid-template-columns: repeat(var(--asppa-books-columns, 4), minmax(0, 1fr));
  align-items: stretch;
  gap: var(--asppa-books-gap, 22px);
}

.asppa-books--columns-2 {
  --asppa-books-columns: 2;
}

.asppa-books--columns-3 {
  --asppa-books-columns: 3;
}

.asppa-books--columns-4 {
  --asppa-books-columns: 4;
}

.asppa-books--columns-5 {
  --asppa-books-columns: 5;
}

.asppa-book-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--asppa-border, #dfe3e8);
  border-radius: var(--asppa-books-radius, 7px);
  color: var(--asppa-text, #111318);
  background: var(--asppa-surface, #fff);
}

.asppa-book-card__cover {
  display: grid;
  aspect-ratio: 4 / 5;
  place-items: center;
  overflow: hidden;
  background: #eceff2;
}

.asppa-book-card__cover img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 10px;
  object-fit: contain;
  transition: transform .25s ease;
}

.asppa-book-card:hover .asppa-book-card__cover img {
  transform: scale(1.025);
}

.asppa-book-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px;
}

.asppa-book-card__meta,
.asppa-event-card__status {
  margin: 0 0 8px;
  color: var(--asppa-red, #d71920);
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
}

.asppa-book-card h2,
.asppa-event-card h2,
.asppa-events__cta h2 {
  margin: 0 0 10px;
  font-family: var(--asppa-heading-font, Inter, ui-sans-serif, system-ui, sans-serif);
  font-weight: 850;
  line-height: 1.05;
}

.asppa-book-card h2 {
  font-size: 22px;
}

.asppa-book-card__body > p:last-child {
  margin-bottom: 0;
}

.asppa-books--horizontal .asppa-books__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asppa-books--horizontal .asppa-book-card {
  display: grid;
  grid-template-columns: minmax(130px, 42%) minmax(0, 1fr);
}

.asppa-books--horizontal .asppa-book-card__cover {
  height: 100%;
  min-height: 260px;
  aspect-ratio: auto;
}

.asppa-books--compact .asppa-book-card__body {
  padding: 12px;
}

.asppa-books--compact .asppa-book-card h2 {
  font-size: 18px;
}

.asppa-books--compact .asppa-book-card__cover img {
  padding: 6px;
}

.asppa-books--editorial .asppa-book-card {
  overflow: visible;
  border-width: 0 0 1px;
  border-radius: 0;
  background: transparent;
}

.asppa-books--editorial .asppa-book-card__cover {
  background: transparent;
}

.asppa-books--editorial .asppa-book-card__body {
  padding-inline: 0;
}

.asppa-books--covers .asppa-book-card__body {
  display: none;
}

.asppa-books--covers .asppa-book-card {
  border: 0;
  background: transparent;
}

.asppa-events__grid {
  display: grid;
  gap: 12px;
}

.asppa-event-card {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  min-width: 0;
  border: 1px solid var(--asppa-border, #dfe3e8);
  border-radius: 7px;
  overflow: hidden;
  color: var(--asppa-text, #111318);
  background: var(--asppa-surface, #fff);
}

.asppa-event-card__date {
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 20px;
  color: #fff;
  background: #111318;
}

.asppa-event-card__date strong {
  font-size: 22px;
}

.asppa-event-card__date span {
  color: rgba(255,255,255,.68);
  font-size: 12px;
}

.asppa-event-card__body {
  padding: 20px;
}

.asppa-event-card__apply {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-top: 8px;
  padding: 0 15px;
  border-radius: 999px;
  color: #fff;
  background: var(--asppa-red, #d71920);
  font-size: 13px;
  font-weight: 800;
}

.asppa-events__cta {
  padding: 24px;
  border-left: 4px solid var(--asppa-red, #d71920);
  background: var(--asppa-paper, #f6f7f8);
}

@media (max-width: 1100px) {
  .asppa-books--columns-4 .asppa-books__grid,
  .asppa-books--columns-5 .asppa-books__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .asppa-photographers--columns-3.asppa-photographers--compact_grid .asppa-photographers__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .asppa-photo-grid--mosaic {
    grid-auto-rows: clamp(150px, 28vw, 230px);
  }

  .asppa-photo-grid--mosaic .asppa-photo-grid__card,
  .asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 4),
  .asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 6) {
    grid-column: span 6;
  }

  .asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 1) {
    grid-column: span 12;
  }

  .asppa-photographers--compact_grid .asppa-photographers__grid {
    grid-template-columns: 1fr;
  }

  .asppa-photographers--editorial .asppa-photographer-card {
    grid-template-columns: 1fr;
  }

  .asppa-photographers--editorial .asppa-photographer-card > * {
    grid-column: 1;
    grid-row: auto;
  }

  .asppa-photographers--editorial .asppa-photographer-card__header {
    grid-template-columns: var(--asppa-profile-portrait, 144px) minmax(0, 1fr);
  }

  .asppa-books--horizontal .asppa-books__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .asppa-photo-grid--mosaic {
    grid-auto-rows: auto;
  }

  .asppa-photo-grid--mosaic .asppa-photo-grid__card,
  .asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 1),
  .asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 4),
  .asppa-photo-grid--mosaic .asppa-photo-grid__card:nth-child(7n + 6) {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .asppa-photo-grid--mosaic .asppa-photo-grid__item,
  .asppa-photo-grid--magazine .asppa-photo-grid__item,
  .asppa-photo-grid--magazine .asppa-photo-grid__card:first-child .asppa-photo-grid__item {
    aspect-ratio: 3 / 2;
  }

  .asppa-photo-grid--magazine {
    grid-template-columns: 1fr;
  }

  .asppa-photo-grid--magazine .asppa-photo-grid__card:first-child {
    grid-column: auto;
  }

  .asppa-lightbox {
    grid-template-rows: 52px minmax(0, 1fr) auto;
  }

  .asppa-lightbox__topbar,
  .asppa-lightbox__footer {
    padding: 7px 12px;
  }

  .asppa-lightbox__stage {
    padding: 8px 12px 60px;
  }

  .asppa-lightbox__watermark {
    inset: 8px 12px 60px;
  }

  .asppa-lightbox__footer {
    display: grid;
    gap: 9px;
  }

  .asppa-lightbox__downloads {
    display: grid;
    grid-template-columns: repeat(var(--asppa-lightbox-download-count, 3), minmax(0, 1fr));
    width: 100%;
  }

  .asppa-lightbox__downloads a {
    min-width: 0;
    padding: 0 7px;
  }

  .asppa-lightbox__prev,
  .asppa-lightbox__next {
    top: auto;
    bottom: 88px;
    width: 42px;
    height: 42px;
  }

  .asppa-lightbox__prev {
    left: 12px;
  }

  .asppa-lightbox__next {
    right: 12px;
  }

  .asppa-lightbox--footer-side {
    grid-template-rows: 52px minmax(0, 1fr) auto;
    grid-template-columns: 1fr;
  }

  .asppa-lightbox--footer-side .asppa-lightbox__topbar,
  .asppa-lightbox--footer-side .asppa-lightbox__stage,
  .asppa-lightbox--footer-side .asppa-lightbox__footer {
    grid-column: 1;
  }

  .asppa-lightbox--footer-side .asppa-lightbox__stage {
    grid-row: 2;
  }

  .asppa-lightbox--footer-side .asppa-lightbox__footer {
    grid-row: 3;
    padding: 10px 12px;
  }

  .asppa-photographer-card__header {
    grid-template-columns: min(88px, var(--asppa-profile-portrait, 144px)) minmax(0, 1fr);
    align-items: start;
    gap: 14px;
  }

  .asppa-photographer-card__portrait {
    width: min(88px, var(--asppa-profile-portrait, 144px));
  }

  .asppa-photographer-card__facts {
    display: grid;
    gap: 7px;
  }

  .asppa-photographer-card__photos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .asppa-photographer-card__career table,
  .asppa-photographer-card__career tbody,
  .asppa-photographer-card__career tr,
  .asppa-photographer-card__career td {
    display: block;
    width: 100%;
  }

  .asppa-photographer-card__career thead {
    display: none;
  }

  .asppa-photographer-card__career tr {
    display: grid;
    gap: 8px;
    padding: 13px 0;
    border-bottom: 1px solid var(--asppa-border, #dfe3e8);
  }

  .asppa-photographer-card__career td,
  .asppa-photographer-card__career td:first-child {
    width: auto;
    padding: 0;
    border: 0;
  }

  .asppa-photographer-card__career td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    color: var(--asppa-muted, #68707d);
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
  }

  .asppa-books[class*="asppa-books--columns-"] .asppa-books__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: min(var(--asppa-books-gap, 22px), 12px);
  }

  .asppa-book-card__body {
    padding: 14px;
  }

  .asppa-book-card h2 {
    font-size: 18px;
  }

  .asppa-event-card {
    grid-template-columns: 94px minmax(0, 1fr);
  }

  .asppa-event-card__date,
  .asppa-event-card__body {
    padding: 14px;
  }
}

@media (max-width: 460px) {
  .asppa-books[class*="asppa-books--columns-"] .asppa-books__grid {
    grid-template-columns: 1fr;
  }

  .asppa-books--horizontal .asppa-book-card {
    grid-template-columns: 1fr;
  }

  .asppa-books--horizontal .asppa-book-card__cover {
    min-height: 0;
    aspect-ratio: 4 / 5;
  }

  .asppa-photographer-card {
    padding: 16px;
  }

  .asppa-photographer-card__header h2 {
    font-size: 24px;
  }

  .asppa-photographer-card__photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.asppa-empty-state {
  padding: 18px;
  border: 1px solid #dfe3e8;
  border-radius: 8px;
  background: #f6f7f8;
  color: #68707d;
}

body.theme-dark .asppa-filter-form,
body.theme-dark .asppa-gallery-card,
body.theme-dark .asppa-photo-grid__card {
  border-color: rgba(255,255,255,.14);
  background: #17202a;
  color: #f4f7fb;
}

body.theme-dark .asppa-gallery-card__media,
body.theme-dark .asppa-photo-grid__item,
body.theme-dark .asppa-empty-state,
body.theme-dark .asppa-download-access {
  border-color: rgba(255,255,255,.14);
  background: #202a36;
  color: #b9c2cf;
}

body.theme-dark .asppa-filter-form span,
body.theme-dark .asppa-gallery-card p,
body.theme-dark .asppa-photo-grid__caption span,
body.theme-dark .asppa-gallery-count {
  color: #b9c2cf;
}

body.theme-dark .asppa-gallery-card h3,
body.theme-dark .asppa-photo-grid__caption strong,
body.theme-dark .asppa-photographer-card {
  color: #f4f7fb;
}

body.theme-dark .asppa-photographer-card {
  border-color: rgba(255,255,255,.14);
  background: #17202a;
}

body.theme-dark .asppa-photographers--minimal .asppa-photographer-card,
body.theme-dark .asppa-books--editorial .asppa-book-card,
body.theme-dark .asppa-books--covers .asppa-book-card {
  background: transparent;
}

body.theme-dark .asppa-photographer-card__series span,
body.theme-dark .asppa-photographer-card__career th,
body.theme-dark .asppa-photographer-card__career td,
body.theme-dark .asppa-photographer-card__career tr,
body.theme-dark .asppa-photographer-card__custom-fields {
  border-color: rgba(255,255,255,.14);
}

body.theme-dark .asppa-book-card,
body.theme-dark .asppa-event-card {
  border-color: rgba(255,255,255,.14);
  color: #f4f7fb;
  background: #17202a;
}

body.theme-dark .asppa-book-card__cover,
body.theme-dark .asppa-events__cta {
  background: #202a36;
}

body.theme-dark .asppa-filter-form input,
body.theme-dark .asppa-filter-form select,
body.theme-dark .asppa-photo-grid__downloads a,
body.theme-dark .asppa-gallery-pagination a,
body.theme-dark .asppa-archive-pagination a,
body.theme-dark .asppa-archive-pagination__status {
  border-color: rgba(255,255,255,.16);
  color: #edf2f7;
  background: #202a36;
}

body.theme-dark .asppa-gallery-pagination a.is-active {
  color: #111318;
  background: #f4f7fb;
  border-color: #f4f7fb;
}

body.theme-dark .asppa-archive-pagination a.is-active {
  color: #111318;
  background: #f4f7fb;
  border-color: #f4f7fb;
}

body.theme-dark .asppa-filter-form button {
  color: #111318;
  background: #f4f7fb;
}

@media (max-width: 900px) {
  .asppa-filter-form,
  .asppa-card-grid,
  .asppa-card-grid--large,
  .asppa-card-grid--compact {
    grid-template-columns: 1fr;
  }
}
