/* Shared hero screenshot — stacked below title on narrow screens, upper-right on desktop */

.case-hero-main {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "lead"
    "rest"
    "visual";
  gap: 1.25rem 0;
  align-items: start;
}

.case-hero-lead,
.case-hero-rest {
  min-width: 0;
}

.case-hero-lead {
  grid-area: lead;
}

.case-hero-rest {
  grid-area: rest;
}

.case-hero-visual {
  grid-area: visual;
  width: 100%;
  max-width: 100%;
  justify-self: stretch;
  margin: 0;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.1),
    0 10px 28px rgba(0, 0, 0, 0.16);
}

.case-hero-visual img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: top center;
}

.case-hero-visual picture {
  display: block;
  width: 100%;
}

.case-hero-visual--contain {
  background: rgba(248, 250, 252, 0.96);
}

.case-hero-visual--contain img {
  object-fit: contain;
  object-position: center;
}

/* Path Compass hero: separate UI + photo floats; copy column stays tight */
.case-hero-main--split {
  grid-template-areas:
    "lead"
    "rest"
    "ui"
    "photo";
}

.case-hero-main--split .case-hero-copy {
  display: contents;
}

.case-hero-main--split .case-hero-aside {
  display: contents;
}

.case-hero-main--split.case-hero-main--with-meta {
  grid-template-areas:
    "lead"
    "rest"
    "ui"
    "photo"
    "meta"
    "actions";
}

.case-hero-main--split .case-hero-copy .meta-row {
  grid-area: meta;
}

.case-hero-main--split .case-hero-actions {
  grid-area: actions;
}

.case-hero-main--split .case-hero-visual--ui {
  grid-area: ui;
}

.case-hero-main--split .case-hero-visual--photo {
  grid-area: photo;
}

.case-hero-visual--ui {
  background: rgba(248, 250, 252, 0.96);
}

.case-hero-visual--ui img {
  aspect-ratio: auto;
  object-fit: contain;
  object-position: top center;
}

.case-hero-visual--photo img {
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center 42%;
}

@media (min-width: 1024px) {
  .case-hero-main--split {
    grid-template-columns: minmax(0, 1fr) min(40%, 480px);
    grid-template-areas: "copy aside";
    column-gap: 2rem;
    row-gap: 0;
    align-items: start;
  }

  .case-hero-main--split .case-hero-copy {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    grid-area: copy;
    align-self: start;
  }

  .case-hero-main--split .case-hero-rest {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .case-hero-main--split .case-hero-aside {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    grid-area: aside;
    align-self: start;
  }

  .case-hero-main--split .case-hero-visual--ui,
  .case-hero-main--split .case-hero-visual--photo {
    grid-area: unset;
  }

  .case-hero-main--split.case-hero-main--with-meta > .meta-row,
  .case-hero-main--split .case-hero-copy .meta-row {
    margin-top: 0;
    margin-bottom: 0;
  }
}

/* Concise pages: meta row hugs copy on the left at desktop widths */
.case-hero-main--with-meta {
  grid-template-areas:
    "lead"
    "rest"
    "visual"
    "meta";
}

.case-hero-main--with-meta > .meta-row {
  grid-area: meta;
  margin-top: 0;
  margin-bottom: 28px;
}

.case-hero-main--with-meta .case-hero-rest .sub {
  margin-bottom: 0;
}

@media (min-width: 1024px) {
  .case-hero-main {
    grid-template-columns: minmax(0, 1fr) min(40%, 480px);
    grid-template-areas:
      "lead visual"
      "rest visual";
    column-gap: 2rem;
    row-gap: 1.25rem;
  }

  .case-hero-main--with-meta {
    grid-template-areas:
      "lead visual"
      "rest visual"
      "meta visual";
  }

  .case-hero-main--split.case-hero-main--with-meta {
    grid-template-areas: "copy aside";
  }

  .case-hero-main--with-meta .case-hero-visual {
    margin-bottom: 1.75rem;
  }

  .case-hero-main--split .case-hero-visual {
    margin-bottom: 0;
  }

  .case-hero-main--with-meta > .meta-row {
    margin-top: 1.5rem;
  }
}

/* Opens-in-new-tab icon on prototype links */
.btn-external-icon {
  flex-shrink: 0;
  width: 1em;
  height: 1em;
}

.proto-external-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
}

.btn-platform {
  font-size: inherit;
  font-weight: 500;
  opacity: 0.88;
  white-space: nowrap;
  line-height: inherit;
}

.btn-label {
  display: inline;
  line-height: inherit;
}

/* Minimal case studies — shared supporting type scale */
.lm-case,
.hc-case,
.pc-case {
  --case-text-support: var(--site-text-secondary);
  --case-text-caption: var(--site-text-meta);
}

.lm-case .eyebrow,
.hc-case .eyebrow,
.pc-case .eyebrow {
  font-size: 15px;
}

.lm-case .stat .lbl,
.pc-case .stat .lbl {
  font-size: var(--case-text-support);
  line-height: 1.5;
}

.lm-case .stat .src,
.pc-case .stat .src {
  font-size: var(--case-text-caption);
  line-height: 1.45;
}

.lm-case .note,
.hc-case .note,
.pc-case .note {
  font-size: var(--case-text-support);
  line-height: 1.6;
}

.lm-case .integrity,
.pc-case .integrity {
  font-size: var(--case-text-caption);
  line-height: 1.55;
}

.lm-case .card .tagline,
.hc-case .card .tagline,
.pc-case .card .tagline,
.lm-case .lm-sub-eyebrow {
  font-size: var(--site-text-label);
}

.lm-case .ev p,
.hc-case .ev p,
.pc-case .ev p {
  font-size: var(--case-text-support);
  line-height: 1.6;
}

.hc-case .take p,
.hc-case .rcard p,
.hc-case .rec .sub li,
.hc-case .rec-visual-caption,
.hc-case .card p,
.hc-case .badir p,
.hc-case .badir-note,
.hc-case .overview-visual-desc,
.hc-case .overview-visual-link,
.hc-case .numlist p,
.hc-case .rec p,
.hc-case .skillpill,
.hc-case .qgrid blockquote {
  font-size: var(--case-text-support);
  line-height: 1.6;
}

.hc-case .card h4,
.hc-case .badir h4,
.hc-case .ev h4,
.hc-case .rcard h4 {
  font-size: var(--site-text-body);
}

.hc-case .overview-visual-kicker,
.hc-case .take .n,
.hc-case .rcard .n {
  font-size: var(--site-text-label);
}

.hc-case .srow p {
  font-size: var(--case-text-support);
  line-height: 1.55;
}

.hc-case .srow .chip,
.hc-case .badir .badge,
.pc-case .tag,
.pc-case .pill,
.pc-case .ev .cnt,
.lm-case .ev .cnt {
  font-size: var(--site-text-label);
}

@media (max-width: 767.98px) {
  .lm-case .eyebrow,
  .hc-case .eyebrow,
  .pc-case .eyebrow {
    font-size: 17px;
  }

  /* HC card serif titles — one shared size on mobile */
  .hc-case .card h4,
  .hc-case .ev h4,
  .hc-case .badir h4,
  .hc-case .rcard h4,
  .hc-case .overview-visual-title,
  .hc-case .insight-depth-title {
    font-size: 23px;
    line-height: 1.25;
  }
}
