.back-link { display: inline-flex; min-height: 44px; align-items: center; margin: 12px 0; }
.artist-detail { display: grid; grid-template-columns: 1.15fr 1fr; gap: 40px; }
.detail-images { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-content: start; }
.detail-images img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 5px; }
.detail-images img:first-child { grid-column: 1 / -1; }
.detail-copy { align-self: start; position: sticky; top: 24px; padding: 0; }
.artist-title-row { display: flex; align-items: start; gap: 12px; }
.detail-copy h1 { flex: 1; min-width: 0; font-size: clamp(28px, 3vw, 38px); line-height: 1.12; letter-spacing: -.7px; margin: 0; }
.artist-title-row .save-button { margin-top: -4px; }
.artist-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 7px 0 0; color: #6a776e; font-size: 12px; line-height: 1.5; }
.artist-meta .artist-location:not(:empty)::before { content: "·"; margin-right: 10px; }
.artist-location:empty { display: none; }
.artist-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 16px 0 0; }
.artist-booth-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 12px; border-radius: 10px; background: var(--booth-fill); font-size: 13px; white-space: nowrap; }
.artist-booth-link strong { margin-left: 5px; font-weight: 700; }
.artist-booth-link svg { width: 16px; height: 16px; }
.artist-booth-link:hover { background: var(--mint); }
.external-links { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.external-links .text-link { min-height: 44px; font-size: 12px; gap: 5px; text-decoration: none; }
.external-links .text-link:hover { text-decoration: underline; }
.external-links a[href=""] { display: none; }
.bio { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 16px; font-weight: 500; line-height: 2; }
.bio:empty { display: none; }
.bio > :first-child { margin-top: 0; }
.bio > :last-child { margin-bottom: 0; }
.bio p { margin: 0 0 1em; font-size: 16px; font-weight: 500; line-height: 2; }
.bio p:last-child { margin-bottom: 0; }
.bio ul, .bio ol { margin: 1em 0; padding-left: 1.4em; }
.bio li + li { margin-top: .5em; }
.detail-placeholder { grid-column: 1 / -1; min-height: 450px; }
@media (max-width: 1000px) { .artist-detail { gap: 26px; } }
@media (max-width: 640px) {
  .artist-detail { display: flex; flex-direction: column; gap: 18px; }
  .detail-copy { position: static; align-self: stretch; min-width: 0; }
  .detail-copy h1 { font-size: 28px; }
  .detail-images { gap: 9px; }
  .detail-placeholder { min-height: 280px; }
  .artist-actions { gap: 4px 12px; margin-top: 12px; }
  .external-links { gap: 12px; }
}


.artist-slideshow {
  min-width: 0;
}
.artist-slideshow[data-has-image="yes"] .detail-placeholder {
  display: none;
}
.slideshow-controls {
  display: none;
}
@media (max-width: 640px) {
  .artist-slideshow .detail-images {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    border-radius: 6px;
  }
  .artist-slideshow .detail-images::-webkit-scrollbar {
    display: none;
  }
  .artist-slideshow .detail-images img {
    display: block !important;
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    border-radius: 0;
    background: #fff;
  }
  .artist-slideshow .detail-placeholder {
    width: 100%;
    flex: 0 0 100%;
  }
  .slideshow-controls:not([hidden]) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 4px;
  }
  .slideshow-controls button {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    padding: 0;
  }
  .slideshow-controls button:disabled {
    opacity: 0.25;
  }
  .slideshow-dots {
    display: flex;
    justify-content: center;
  }
  .slideshow-dots button {
    width: 28px;
  }
  .slideshow-dots button::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #b4c6bb;
  }
  .slideshow-dots button[aria-current="true"]::before {
    background: var(--ink);
  }
}


.artist-map-widget { position: relative; aspect-ratio: 5 / 2; margin-top: 20px; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: #e1f2ec; }
.artist-map-expand { position: absolute; top: 10px; z-index: 2; background: #f7faf7c9; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.artist-map-expand { right: 10px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; }
.artist-map-expand svg { width: 18px; height: 18px; }
.artist-map-expand:hover { background: #f7faf7; }
.artist-map-frame { display: block; width: 100%; height: 100%; border: 0; pointer-events: none; }
.artist-map-touch { position: absolute; inset: 0; z-index: 1; }
