/* Artist pages — blocks the rest of the site does not have.
   Colours are taken from the existing palette; the two greys used for body copy
   are darkened where they carry real reading text (the site's --g-500 is only
   3.7:1 on cream, which is fine for an uppercase label and not for a paragraph). */

.page-hero__ig {
  display: inline-block; margin-left: .5em; font-size: .82em;
  color: #7C5F19; text-decoration: none; border-bottom: 1px solid currentColor;
}
.page-hero__ig:hover { opacity: .72; }

/* --- bio ---------------------------------------------------------------- */
.abio { display: grid; grid-template-columns: minmax(220px, 340px) 1fr; gap: clamp(26px, 4vw, 56px); align-items: start; }
.abio__photo { border-radius: 16px; overflow: hidden; aspect-ratio: 1; background: var(--g-100, #e9e6df); }
.abio__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.abio__text { font-size: clamp(16px, 1.5vw, 18px); line-height: 1.72; color: #4A5568; max-width: 46ch; margin: 0 0 26px; }
@media (max-width: 760px) { .abio { grid-template-columns: 1fr; } .abio__photo { max-width: 300px; } }

/* --- work gallery ------------------------------------------------------- */
.awork { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.awork__tile { margin: 0; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 5; background: var(--g-100, #e9e6df); }
.awork__tile img, .awork__tile video { width: 100%; height: 100%; object-fit: cover; display: block; }
.awork__tile--v { position: relative; }
@media (max-width: 560px) { .awork { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } }

/* --- service list ------------------------------------------------------- */
.asvc { list-style: none; margin: 0; padding: 0; max-width: 760px; }
.asvc li {
  display: grid; grid-template-columns: 1fr auto auto; gap: 16px; align-items: baseline;
  padding: 13px 0; border-bottom: 1px solid rgba(7,15,28,.1);
}
.asvc li:last-child { border-bottom: none; }
.asvc__n { font-size: 16px; color: #14203a; }
.asvc__n a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(7,15,28,.22); }
.asvc__n a:hover { border-color: currentColor; }
.asvc__m { font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; color: #5A6678; }
.asvc__p { font-variant-numeric: tabular-nums; font-weight: 600; color: #14203a; min-width: 4.5ch; text-align: right; }
@media (max-width: 520px) {
  .asvc li { grid-template-columns: 1fr auto; row-gap: 3px; }
  .asvc__m { grid-column: 1; font-size: 11.5px; }
}

/* --- other artists ------------------------------------------------------ */
.aother { display: flex; flex-wrap: wrap; gap: 18px; }
.aother__x { text-decoration: none; text-align: center; width: 104px; }
.aother__x img { width: 104px; height: 104px; object-fit: cover; border-radius: 50%; display: block; margin-bottom: 9px; }
.aother__x span { font-size: 13px; letter-spacing: .07em; text-transform: uppercase; color: #14203a; }
.aother__x:hover img { opacity: .85; }

.svc-sec__lead { color: #5A6678; max-width: 56ch; margin: -6px 0 22px; }

/* --- team grid: cards are links now ------------------------------------- */
.member__link { text-decoration: none; color: inherit; display: block; }
.member__link:hover .member__name { text-decoration: underline; text-underline-offset: 4px; }
.member__link:hover .member__photo img { transform: scale(1.03); }
.member__photo img { transition: transform .45s ease; }
