/* Shared slots keep published cards aligned when optional information is absent. */
.studio-home .partner-card-link,
.partner-directory-page .partner-card-link {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  padding: 0;
}
.studio-home .partner-card-link .partner-media,
.partner-directory-page .partner-card-link .partner-media {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.studio-home .partner-media img,
.partner-directory-page .partner-media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.studio-home .partner-card-link .partner-info,
.partner-directory-page .partner-card-link .partner-info {
  display: grid;
  flex: 0 0 121px;
  height: 121px;
  grid-template-rows: 27px 18px 28px;
  align-content: start;
  gap: 8px;
  min-width: 0;
  padding: 16px;
  overflow: hidden;
}
.studio-home .partner-name-row,
.partner-directory-page .partner-name-row {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 27px;
}
.studio-home .partner-name-row h4,
.partner-directory-page .partner-name-row strong {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: inherit;
  font-size: 18px;
  line-height: 27px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-home .partner-card-arrow,
.partner-directory-page .partner-card-arrow { flex: 0 0 auto; }
.studio-home .partner-card-link .partner-location,
.partner-directory-page .partner-card-link .partner-location {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  min-height: 18px;
  margin: 0;
  overflow: hidden;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap;
}
.studio-home .partner-location svg,
.partner-directory-page .partner-location svg { flex: 0 0 14px; }
.studio-home .partner-card-link .partner-skills,
.partner-directory-page .partner-card-link .partner-skills {
  display: flex;
  align-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
  min-height: 28px;
  margin: 0;
  padding: 0;
  height: 28px;
  overflow: hidden;
}
.studio-home .partner-skills > li,
.partner-directory-page .partner-skills > span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  max-width: 100%;
  padding: 3px 8px;
  overflow: hidden;
  font-size: 12px;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-home .partner-empty-media,
.partner-directory-page .partner-empty-media {
  background: radial-gradient(ellipse at 50% 76%, #496dad44, transparent 65%), linear-gradient(135deg, #162d4b, #1b2544);
}
.studio-home .partner-empty-media .expert-portrait,
.partner-directory-page .partner-empty-media .partner-directory-portrait {
  position: absolute;
  inset: 0;
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  background: transparent;
  opacity: .65;
}
.studio-home .partner-empty-media svg,
.partner-directory-page .partner-empty-media svg {
  width: auto;
  height: 78%;
  max-width: 100%;
  fill: #8aa9d438;
  stroke: #a4c6f0;
  stroke-width: 1.2;
}
.studio-home .talent-card { align-items: stretch; }
.studio-home .talent-avatar { align-self: center; }
.studio-home .talent-person {
  display: grid;
  flex: 1;
  min-width: 0;
  grid-template-rows: 25px 20px 36px 36px;
  align-content: start;
  gap: 6px;
}
.studio-home .talent-person h4,
.studio-home .talent-person > p {
  min-width: 0;
  margin: 0;
}
.studio-home .talent-person h4,
.talent-directory-page .talent-profile-copy > strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-home .talent-person > p:not(.talent-card-fact) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-home .talent-person .talent-card-fact { min-height: 18px; margin: 0; }
.talent-directory-page .talent-profile-card { align-items: stretch; }
.talent-directory-page .talent-profile-portrait { align-self: center; }
.talent-directory-page .talent-profile-copy {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 21px 18px 36px 36px;
  align-content: start;
}
.talent-directory-page .talent-profile-fact { min-height: 18px; }
@media (max-width: 600px) {
  .studio-home .partner-card-link .partner-info,
  .partner-directory-page .partner-card-link .partner-info { padding: 16px; }
}
@media (max-width: 520px) {
  .studio-home .talent-person { grid-template-rows: 20px 18px 36px 36px; }
}

/* Card dimensions depend on their type and viewport, never on text length. */
.studio-home .partner-card,
.partner-directory-page .partner-card { container-type: inline-size; }
.studio-home .partner-card-link,
.partner-directory-page .partner-card-link {
  box-sizing: border-box;
  height: calc(56.25cqi + 123px);
  min-height: 0;
}
.studio-home .partner-card-link .partner-media,
.partner-directory-page .partner-card-link .partner-media {
  height: 56.25cqi;
  aspect-ratio: auto;
}
.studio-home .partner-name-row h4,
.partner-directory-page .partner-name-row strong { flex: 1; }
.studio-home .partner-location,
.partner-directory-page .partner-location { overflow: hidden; text-overflow: ellipsis; }

.studio-home .talent-page {
  grid-template-rows: repeat(3, 176px);
  grid-auto-rows: 176px;
}
.studio-home .talent-card {
  box-sizing: border-box;
  height: 176px;
  min-height: 0;
  overflow: hidden;
}
.studio-home .talent-avatar { height: 108px; aspect-ratio: auto; }
.studio-home .talent-person { overflow: hidden; }
.studio-home .talent-person .talent-card-fact,
.talent-directory-page .talent-profile-fact {
  display: grid;
  grid-template-rows: 18px 18px;
  gap: 0;
  height: 36px;
  min-height: 0;
  overflow: hidden;
}
.studio-home .talent-card-fact > *,
.talent-directory-page .talent-profile-fact > * {
  display: block;
  min-width: 0;
  overflow: hidden;
  line-height: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-home .talent-card-fact > span,
.talent-directory-page .talent-profile-fact > span { font-size: 11px; }
.talent-directory-page .talent-profile-slide {
  min-height: 0;
  grid-template-rows: repeat(3, 180px);
  grid-auto-rows: 180px;
}
.talent-directory-page .talent-profile-card {
  box-sizing: border-box;
  height: 180px;
  min-height: 0;
  overflow: hidden;
}
.talent-directory-page .talent-profile-copy { min-height: 0; overflow: hidden; }
.talent-directory-page .talent-profile-copy > small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-directory-page .talent-profile-portrait { height: 72px; aspect-ratio: auto; }
.studio-home .demand-carousel .talent-viewport { height: 560px; }
.studio-home .demand-page { grid-template-rows: repeat(3, 176px); }
.studio-home .demand-card {
  box-sizing: border-box;
  height: 176px;
  min-height: 0;
  overflow: hidden;
  justify-content: flex-start;
}
.studio-home .demand-card h4,
.talent-directory-page .opportunity-card-title strong {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-home .demand-card > p {
  display: block;
  flex: 0 0 19px;
  height: 19px;
  min-height: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-directory-page .opportunity-viewport { height: 570px; }
.talent-directory-page .opportunity-slide { grid-template-rows: repeat(3, 180px); }
.talent-directory-page .opportunity-card {
  box-sizing: border-box;
  height: 180px;
  min-height: 0;
  align-content: start;
  overflow: hidden;
}
.talent-directory-page .opportunity-card-title { height: 23px; min-height: 0; }
.talent-directory-page .opportunity-card-meta {
  display: block;
  height: 18px;
  min-height: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-directory-page .opportunity-card-meta > span + span { margin-left: 12px; }
.talent-directory-page .opportunity-card-salary {
  height: 18px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-directory-page .opportunity-card-summary {
  display: -webkit-box;
  height: 36px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-height: 18px;
}

.studio-home .equipment-card-button,
body.equipment-list-page[data-equipment-type] .catalog-product-card {
  box-sizing: border-box;
  height: 356px;
  min-height: 0;
  overflow: hidden;
}
.studio-home .equipment-card-button { height: 384px; }
.studio-home .equipment-image,
body.equipment-list-page[data-equipment-type] .catalog-product-art {
  flex: 0 0 180px;
  height: 180px;
  min-height: 0;
  aspect-ratio: auto;
}
.studio-home .equipment-card-body,
body.equipment-list-page[data-equipment-type] .catalog-product-copy {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.studio-home .equipment-card-title,
body.equipment-list-page[data-equipment-type] .catalog-product-copy h3 {
  display: -webkit-box;
  flex: 0 0 50px;
  height: 50px;
  min-height: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 18px;
  line-height: 25px;
}
.studio-home .equipment-condition,
.studio-home .equipment-stock,
body.equipment-list-page[data-equipment-type] .used-product-stock {
  display: block;
  flex: 0 0 18px;
  height: 18px;
  min-height: 0;
  padding-top: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-home .equipment-card-bottom,
body.equipment-list-page[data-equipment-type] .catalog-product-bottom {
  flex: 0 0 43px;
  flex-wrap: nowrap;
  height: 43px;
  min-height: 0;
  padding-top: 8px;
  overflow: hidden;
}
.studio-home .equipment-price,
body.equipment-list-page[data-equipment-type] .catalog-product-price {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.studio-home .case-card,
.case-list-card { container-type: inline-size; }
.studio-home .case-surface {
  box-sizing: border-box;
  height: calc(62.5cqi + 114px);
  min-height: 0;
  overflow: hidden;
}
.studio-home .case-media {
  height: 62.5cqi;
  min-height: 0;
  aspect-ratio: auto;
}
.studio-home .case-caption {
  box-sizing: border-box;
  height: 112px;
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: 31px 28px;
  align-content: start;
  overflow: hidden;
}
.studio-home .case-title,
.studio-home .case-location,
.studio-home .case-scope,
.case-list-title,
.case-list-meta {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.case-list-card {
  box-sizing: border-box;
  height: auto;
  min-height: 0;
  overflow: hidden;
}
.case-list-link { display: flex; flex-direction: column; justify-content: flex-start; height: calc(56.25cqi + 122px); min-height: 0; }
.case-list-media { flex: 0 0 56.25cqi; height: 56.25cqi; aspect-ratio: auto; }
.case-list-caption {
  box-sizing: border-box;
  flex: 0 0 122px;
  height: 122px;
  min-height: 0;
  overflow: hidden;
}
.case-list-title { flex: 0 0 24px; height: 24px; }
.case-list-meta {
  display: -webkit-box;
  flex: 0 0 42px;
  height: 42px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 12px;
  line-height: 21px;
  white-space: normal;
}
.case-list-media img,
.studio-home .case-media img { position: absolute; inset: 0; object-fit: cover; }

.studio-home .news-grid { height: 320px; min-height: 0; }
.studio-home .news-feature {
  box-sizing: border-box;
  height: 320px;
  min-height: 0;
  overflow: hidden;
}
.studio-home .news-list { grid-template-rows: repeat(2, 154px); }
.studio-home .news-list a {
  box-sizing: border-box;
  height: 154px;
  min-height: 0;
  overflow: hidden;
}
.studio-home .news-feature-copy,
.studio-home .news-item-copy { min-width: 0; overflow: hidden; }
.studio-home .news-feature-copy > strong,
.studio-home .news-item-copy > strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.studio-home .news-summary,
.studio-home .news-item-copy > span {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.news-list-page .news-row,
.news-list-page .news-row-link {
  box-sizing: border-box;
  height: 88px;
  min-height: 0;
  overflow: hidden;
}
.news-list-page .news-row-copy { min-height: 0; overflow: hidden; }

@media (max-width: 1100px) {
  .studio-home .case-caption { grid-template-columns: minmax(0, 1fr); grid-template-rows: 28px 18px 18px; gap: 5px; }
}
@media (max-width: 820px) {
  .talent-directory-page .talent-profile-slide { grid-template-rows: none; grid-auto-rows: 180px; }
}
@media (max-width: 800px) {
  .studio-home .news-grid { height: auto; }
  .studio-home .news-feature { height: 252px; }
  .studio-home .news-list { grid-template-rows: repeat(2, 150px); }
  .studio-home .news-list a { height: 150px; }
}
@media (max-width: 760px) {
  body.equipment-list-page[data-equipment-type] .catalog-product-card,
  .studio-home .equipment-card-button { height: 344px; }
  .studio-home .equipment-card-button { height: 360px; }
  body.equipment-list-page[data-equipment-type] .catalog-product-art,
  .studio-home .equipment-image { height: 142px; flex-basis: 142px; }
  body.equipment-list-page[data-equipment-type] .catalog-product-copy h3,
  .studio-home .equipment-card-title { height: 44px; flex-basis: 44px; font-size: 16px; line-height: 22px; }
  body.equipment-list-page[data-equipment-type] .catalog-product-bottom,
  .studio-home .equipment-card-bottom { height: 66px; flex-basis: 66px; padding-top: 8px; }
  .news-list-page .news-row,
  .news-list-page .news-row-link { height: 82px; }
}
@media (max-width: 700px) {
  .studio-home .case-surface { height: calc(75cqi + 122px); }
  .studio-home .case-media { height: 75cqi; }
  .studio-home .case-caption { height: 120px; }
}
@media (max-width: 600px) {
  .studio-home .news-list { grid-template-rows: none; grid-auto-rows: 132px; }
  .studio-home .news-list a { height: 132px; }
  .studio-home .news-item-copy > strong { -webkit-line-clamp: 1; }
  .studio-home .news-item-copy > span { -webkit-line-clamp: 1; }
}
@media (max-width: 520px) {
  .studio-home .talent-page { grid-template-rows: repeat(3, 304px); grid-auto-rows: 304px; }
  .studio-home .talent-card { height: 304px; }
  .studio-home .talent-avatar { height: 124px; }
}
@media (max-width: 560px) {
  .talent-directory-page .talent-profile-slide { grid-template-rows: none; grid-auto-rows: 280px; }
  .talent-directory-page .talent-profile-card { height: 280px; }
  .talent-directory-page .talent-profile-portrait { flex: 0 0 124px; height: 124px; width: 100%; aspect-ratio: auto; }
}
@media (max-width: 440px) {
  .news-list-page .news-row,
  .news-list-page .news-row-link { height: 78px; }
}

/* Homepage talent information stays in two columns within a fixed card. */
.studio-home .talent-card { align-items: center; }
.studio-home .talent-person {
  grid-template-rows: 25px 20px 52px;
  gap: 7px;
}
.studio-home .talent-person h4 { font-size: 18px; line-height: 25px; }
.studio-home .talent-person .talent-card-meta { font-size: 13px; line-height: 20px; }
.studio-home .talent-card-facts {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  align-items: start;
  min-width: 0;
  height: 52px;
  padding-top: 9px;
  border-top: 1px solid #e3e9f1;
  gap: 12px;
}
.studio-home .talent-person .talent-card-fact {
  grid-template-rows: 18px 22px;
  height: 40px;
  margin: 0;
}
.studio-home .talent-card-fact > span { color: #617086; font-size: 12px; line-height: 18px; }
.studio-home .talent-card-fact > strong { color: #1d497e; font-size: 14px; line-height: 22px; font-weight: 600; }
.studio-home .talent-card-salary > strong { font-variant-numeric: tabular-nums; }
.studio-home .talent-card-facts-empty { border-top-color: transparent; }

@media (min-width: 521px) and (max-width: 1100px) {
  .studio-home .talent-card {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    grid-template-rows: 32px 32px 52px;
    align-content: center;
    gap: 6px 12px;
    padding: 14px;
  }
  .studio-home .talent-avatar {
    grid-column: 1;
    grid-row: 1 / 3;
    width: 72px;
    height: 70px;
    margin: 0;
  }
  .studio-home .talent-person { display: contents; }
  .studio-home .talent-person h4 { grid-column: 2; grid-row: 1; align-self: end; font-size: 16px; }
  .studio-home .talent-card-meta { grid-column: 2; grid-row: 2; }
  .studio-home .talent-card-facts { grid-column: 1 / -1; grid-row: 3; }
}
@media (max-width: 520px) {
  .studio-home .talent-person { grid-template-rows: 22px 18px 52px; gap: 6px; }
  .studio-home .talent-person h4 { font-size: 14px; line-height: 22px; }
  .studio-home .talent-person .talent-card-meta { font-size: 12px; line-height: 18px; }
  .studio-home .talent-card-facts { gap: 4px; }
  .studio-home .talent-card-fact > strong { font-size: 13px; }
}

/* Talent directory cards share the homepage field order and fixed slots. */
.talent-directory-page .talent-profile-card {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  grid-template-rows: 34px 32px 52px;
  align-content: center;
  gap: 6px 12px;
  height: 180px;
  padding: 14px;
}
.talent-directory-page .talent-profile-card:hover { transform: none; }
.talent-directory-page .talent-profile-card:focus-visible {
  outline: 2px solid #b4d3ff;
  outline-offset: -3px;
}
.talent-directory-page .talent-profile-portrait {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  width: 96px;
  height: 72px;
  margin: 0;
}
.talent-directory-page .talent-profile-copy { display: contents; }
.talent-directory-page .talent-profile-name {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  min-width: 0;
  margin: 0;
  color: #f1f5ff;
  font-size: 16px;
  line-height: 25px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-directory-page .talent-profile-copy > .talent-profile-meta {
  grid-column: 2;
  grid-row: 2;
  align-self: center;
  min-width: 0;
  margin: 0;
  color: #b9c7dc;
  font-size: 12px;
  line-height: 20px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-directory-page .talent-profile-facts {
  box-sizing: border-box;
  display: grid;
  grid-column: 1 / -1;
  grid-row: 3;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  align-items: start;
  min-width: 0;
  height: 52px;
  padding-top: 9px;
  border-top: 1px solid #97aac82e;
  gap: 12px;
}
.talent-directory-page .talent-profile-facts > .talent-profile-fact {
  grid-column: auto;
  grid-template-rows: 18px 22px;
  min-width: 0;
  height: 40px;
  margin: 0;
}
.talent-directory-page .talent-profile-fact > span {
  color: #b9c7dc;
  font-size: 12px;
  line-height: 18px;
}
.talent-directory-page .talent-profile-fact > b {
  color: #c5d9ff;
  font-size: 14px;
  line-height: 22px;
  font-weight: 600;
}
.talent-directory-page .talent-profile-salary > b { font-variant-numeric: tabular-nums; }
.talent-directory-page .talent-profile-facts-empty { border-top-color: transparent; }

@media (max-width: 560px) {
  .talent-directory-page .talent-profile-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    height: 280px;
    padding: 0;
  }
  .talent-directory-page .talent-profile-portrait {
    align-self: stretch;
    flex: 0 0 124px;
    width: 100%;
    height: 124px;
    border-radius: 0;
  }
  .talent-directory-page .talent-profile-copy {
    display: grid;
    flex: 1;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 22px 18px 52px;
    align-content: start;
    gap: 6px;
    min-width: 0;
    min-height: 0;
    padding: 12px 10px 14px;
  }
  .talent-directory-page .talent-profile-name {
    grid-column: 1;
    align-self: start;
    font-size: 14px;
    line-height: 22px;
  }
  .talent-directory-page .talent-profile-copy > .talent-profile-meta {
    grid-column: 1;
    font-size: 12px;
    line-height: 18px;
  }
  .talent-directory-page .talent-profile-facts { gap: 4px; }
  .talent-directory-page .talent-profile-fact > b { font-size: 13px; }
}
