/* ======================================================================
   ARTHUBLY — ARTIST PAGES
   File: public/assets/frontend/css/arthubly-artist.css

   Sirf /artists aur /artist/{slug} par load hoti hai, isliye baaki
   pages par koi asar nahi. arthubly.css ki .maker-card / .mc-* classes
   bilkul chhui nahi gayi — wo pehle se bani hui hain.

   CONTENTS
   --------
   A. Filter bar (listing)
   B. Empty state
   C. Artist hero — cover, avatar, stats
   D. Story + video
   E. Follow button states
   F. Responsive
   ====================================================================== */

/* =========================================================================
   A. FILTER BAR
   ========================================================================= */
.ar-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--surface);
  box-shadow: var(--sh-1);
}

.ar-search {
  position: relative;
  flex: 1 1 260px;
  min-width: 200px;
}

.ar-search svg {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  width: 17px;
  height: 17px;
  color: var(--ink-30);
  pointer-events: none;
}

.ar-search input {
  width: 100%;
  padding: 11px 14px 11px 40px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: var(--surface-2);
  font: 400 14px/1 var(--font-b);
  color: var(--ink);
}

.ar-search input:focus {
  outline: none;
  border-color: var(--brass);
  box-shadow: 0 0 0 4px var(--brass-wash);
}

.ar-filters select {
  padding: 11px 14px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: var(--surface-2);
  font: 400 14px/1 var(--font-b);
  color: var(--ink);
  cursor: pointer;
}

.ar-filters select:focus {
  outline: none;
  border-color: var(--brass);
}

.ar-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: 500 14px/1 var(--font-b);
  color: var(--ink-70);
  cursor: pointer;
  user-select: none;
}

.ar-check input {
  width: 16px;
  height: 16px;
  accent-color: var(--brass-d);
  cursor: pointer;
}

.ar-clear {
  font: 500 13px/1 var(--font-b);
  color: var(--ink-50);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ar-clear:hover {
  color: var(--madder);
}

/* =========================================================================
   B. EMPTY STATE
   ========================================================================= */
.ar-empty {
  text-align: center;
  padding: 70px 20px;
  border: 1px dashed var(--line-2);
  border-radius: var(--r-lg);
  background: var(--surface);
}

.ar-empty svg {
  width: 46px;
  height: 46px;
  color: var(--ink-30);
  margin-bottom: 14px;
}

.ar-empty h3 {
  margin: 0 0 8px;
  font: 500 22px/1.3 var(--font-d);
  color: var(--ink);
}

.ar-empty p {
  margin: 0 0 20px;
  font: 400 15px/1.6 var(--font-b);
  color: var(--ink-50);
  max-width: 42ch;
  margin-inline: auto;
}

/* =========================================================================
   C. ARTIST HERO
   ========================================================================= */
.ap-hero {
  position: relative;
  margin-bottom: 34px;
}

.ap-cover {
  height: 300px;
  background-size: cover;
  background-position: center;
  position: relative;
}

/* text hamesha padha jaaye, chahe cover kitni bhi bright ho */
.ap-cover-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(25, 30, 46, .12) 0%, rgba(25, 30, 46, .55) 100%);
}

.ap-head {
  position: relative;
  margin-top: -76px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: flex-end;
}

.ap-av {
  width: 152px;
  height: 152px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--paper-2);
  border: 5px solid var(--paper);
  box-shadow: var(--sh-2);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.ap-av img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ap-initials {
  font: 500 44px/1 var(--font-d);
  color: var(--brass-d);
}

.ap-id {
  padding-bottom: 6px;
  min-width: 0;
}

.ap-name {
  margin: 0 0 10px;
  font: 500 clamp(28px, 4vw, 42px)/1.1 var(--font-d);
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.ap-vf {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--celadon-wash);
  color: var(--celadon);
}

.ap-vf svg {
  width: 15px;
  height: 15px;
}

.ap-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-bottom: 12px;
}

.ap-craft {
  padding: 5px 13px;
  border-radius: var(--r-pill);
  background: var(--brass-wash);
  color: var(--brass-d);
  font: 500 12.5px/1 var(--font-b);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.ap-loc,
.ap-since {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font: 400 14px/1 var(--font-b);
  color: var(--ink-50);
}

.ap-loc svg {
  width: 15px;
  height: 15px;
}

.ap-tag {
  margin: 0;
  max-width: 58ch;
  font: 400 16px/1.6 var(--font-b);
  color: var(--ink-70);
  font-style: italic;
}

.ap-cta {
  display: flex;
  gap: 10px;
  padding-bottom: 10px;
  flex: 0 0 auto;
}

/* ---- stats strip ---- */
.ap-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  margin-top: 30px;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--line);
}

.ap-stats>div {
  background: var(--surface);
  padding: 20px 16px;
  text-align: center;
}

.ap-stats b {
  display: block;
  font: 500 26px/1 var(--font-d);
  color: var(--ink);
  margin-bottom: 6px;
}

.ap-stats small {
  font: 400 12.5px/1.3 var(--font-b);
  color: var(--ink-50);
  letter-spacing: .02em;
}

.ap-stat-badge {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 11px;
  text-align: left !important;
  background: var(--celadon-wash) !important;
}

.ap-stat-badge svg {
  width: 26px;
  height: 26px;
  color: var(--celadon);
  flex: 0 0 auto;
}

.ap-stat-badge span {
  font: 500 14px/1.35 var(--font-b);
  color: var(--ink);
}

.ap-stat-badge small {
  font-weight: 400;
  color: var(--ink-50);
}

/* =========================================================================
   D. STORY + VIDEO
   ========================================================================= */
.ap-story-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 46px;
  align-items: start;
}

.ap-story .eyebrow {
  display: block;
  margin-bottom: 8px;
}

.ap-story .ed-title {
  margin-bottom: 20px;
}

.ap-story-body {
  font: 400 16.5px/1.85 var(--font-b);
  color: var(--ink-70);
  max-width: 66ch;
}

/* pehla akshar bada — kahani ko kahani jaisa banata hai */
.ap-story-body::first-letter {
  float: left;
  font: 500 58px/.82 var(--font-d);
  color: var(--brass-d);
  padding: 6px 10px 0 0;
}

.ap-video-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--indigo-deep);
  box-shadow: var(--sh-2);
}

.ap-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.ap-video small {
  display: block;
  margin-top: 10px;
  font: 400 13px/1 var(--font-b);
  color: var(--ink-50);
  text-align: center;
}

/* ---- sort dropdown on shop ---- */
.ap-sort select {
  padding: 10px 14px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: var(--surface);
  font: 400 14px/1 var(--font-b);
  color: var(--ink);
  cursor: pointer;
}

/* =========================================================================
   E. FOLLOW BUTTON
   ========================================================================= */
.js-follow {
  position: relative;
  transition: background .2s var(--ease), color .2s var(--ease),
    border-color .2s var(--ease);
}

.js-follow.is-following {
  background: var(--celadon-wash);
  border-color: var(--celadon);
  color: var(--celadon);
}

.js-follow.is-busy {
  opacity: .55;
  pointer-events: none;
}

/* hover par "Following" → "Unfollow" — bina label badle intent saaf */
.js-follow.is-following:hover {
  background: var(--madder-wash);
  border-color: var(--madder);
  color: var(--madder);
}

/* =========================================================================
   F. RESPONSIVE
   ========================================================================= */
@media (max-width: 980px) {
  .ap-story-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .ap-cover {
    height: 230px;
  }

  .ap-head {
    grid-template-columns: auto 1fr;
    margin-top: -60px;
  }

  .ap-cta {
    grid-column: 1 / -1;
    padding-bottom: 0;
  }
}

@media (max-width: 760px) {
  .ap-cover {
    height: 180px;
  }

  .ap-head {
    grid-template-columns: 1fr;
    margin-top: -54px;
    gap: 16px;
  }

  .ap-av {
    width: 108px;
    height: 108px;
    border-width: 4px;
  }

  .ap-initials {
    font-size: 32px;
  }

  .ap-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .ap-cta {
    width: 100%;
  }

  .ap-cta .btn {
    flex: 1;
    justify-content: center;
  }

  .ar-filters {
    padding: 13px;
  }

  .ar-filters select,
  .ar-filters .btn {
    flex: 1 1 auto;
  }

  .ap-story-body {
    font-size: 15.5px;
  }

  .ap-story-body::first-letter {
    font-size: 46px;
  }
}

@media (max-width: 520px) {
  .ar-filters>* {
    width: 100%;
  }

  .ap-stats>div {
    padding: 15px 10px;
  }

  .ap-stats b {
    font-size: 21px;
  }
}

/* =========================================================================
   G. ACCESSIBILITY
   ========================================================================= */
@media (prefers-reduced-motion: reduce) {
  .js-follow {
    transition: none;
  }
}
