/* Data-driven real estate case studies and reusable project cards. */
.project-case-study { overflow: clip; }

.case-study-intro { padding-block: clamp(4.5rem, 8vw, 8rem) clamp(3.5rem, 6vw, 6rem); }
.case-study-intro-grid,
.service-featured-projects-header,
.case-study-film-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 1.4vw, 1.25rem); }
.case-study-intro-copy { grid-column: 1 / span 8; }
.case-study-intro-copy > .site-eyebrow { margin: 0 0 var(--space-4); color: var(--color-text-muted); }
.case-study-intro h1 { max-width: 11ch; margin: 0; font-size: clamp(3.5rem, 7vw, 6.75rem); font-weight: var(--font-weight-body); letter-spacing: -.055em; line-height: .92; }
.case-study-summary { max-width: 48rem; margin: var(--space-6) 0 0; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.5vw, 1.28rem); line-height: 1.65; }
.case-study-facts { grid-column: 10 / -1; align-self: end; }
.case-study-facts dl { margin: 0; }
.case-study-facts dl > div { padding-block: var(--space-3); border-top: var(--border-width) solid var(--color-border); }
.case-study-facts dl > div:last-child { border-bottom: var(--border-width) solid var(--color-border); }
.case-study-facts dt,
.case-study-services > .site-eyebrow { margin: 0 0 .35rem; color: var(--color-text-muted); font-size: var(--type-eyebrow); }
.case-study-facts dd { margin: 0; }
.case-study-services { margin-top: var(--space-6); }
.case-study-services ul { margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.case-study-services li { padding-block: .45rem; font-size: var(--type-small); }

.case-study-hero { margin-bottom: clamp(5rem, 10vw, 10rem); }
.case-study-hero,
.case-study-hero picture,
.case-study-hero img,
.case-study-media picture,
.case-study-media img { display: block; width: 100%; }
.case-study-hero img,
.case-study-media img { height: auto; }

.case-study-sequence { padding-bottom: clamp(5rem, 10vw, 10rem); }
.case-study-media-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(3.5rem, 7vw, 7rem) clamp(1rem, 1.4vw, 1.25rem); align-items: end; }
.case-study-media { margin: 0; }
.case-study-media--split-left { grid-column: 1 / span 5; }
.case-study-media--split-right { grid-column: 7 / -1; }
.case-study-media--wide { grid-column: 2 / span 10; }
.case-study-media--wide-left { grid-column: 1 / span 9; }
.case-study-media--wide-right { grid-column: 4 / -1; }
.case-study-media--finale { grid-column: 2 / span 10; }

.case-study-film { background: var(--color-warm-white); padding-block: clamp(5rem, 9vw, 9rem); }
.case-study-film-grid { align-items: center; }
.case-study-film-copy { grid-column: 1 / span 4; }
.case-study-film-copy > .site-eyebrow { margin: 0 0 var(--space-5); color: var(--color-text-muted); }
.case-study-film-copy h2 { max-width: 11ch; margin: 0; font-size: var(--type-section-title); font-weight: var(--font-weight-body); line-height: 1.03; }
.case-study-film-copy > p:last-child { max-width: 28rem; margin: var(--space-5) 0 0; color: var(--color-text-muted); line-height: 1.7; }
.case-study-film-service-link { margin-top: var(--space-5); }
.case-study-video { grid-column: 6 / -1; margin: 0; background: var(--color-charcoal); }
.case-study-video { position: relative; aspect-ratio: 16 / 9; overflow: hidden; }
.case-study-video-trigger { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; color: var(--color-canvas); background: var(--color-charcoal); text-decoration: none; cursor: pointer; }
.case-study-video-trigger::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 58%, rgba(0, 0, 0, .34)); transition: background-color 220ms var(--transition-easing); }
.case-study-video-trigger img,
.case-study-video iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: cover; }
.case-study-video-trigger picture { display: block; width: 100%; height: 100%; }
.case-study-video-play { position: absolute; z-index: 1; top: 50%; left: 50%; display: grid; width: clamp(3.5rem, 6vw, 4.75rem); aspect-ratio: 1; color: rgba(252, 252, 250, .94); transform: translate(-50%, -50%); transition: transform 220ms var(--transition-easing); }
.case-study-video-play svg { width: 100%; height: 100%; }
.case-study-video-label { position: absolute; z-index: 1; right: var(--space-5); bottom: var(--space-4); font-size: .72rem; font-weight: var(--font-weight-medium); letter-spacing: .12em; text-transform: uppercase; }
.case-study-video-trigger:is(:hover, :focus-visible)::after { background-color: rgba(0, 0, 0, .08); }
.case-study-video-trigger:is(:hover, :focus-visible) .case-study-video-play { transform: translate(-50%, -50%) scale(1.06); }
.case-study-video-trigger:focus-visible { outline: 2px solid var(--color-gold); outline-offset: -4px; }
.case-study-publication { padding-block: clamp(4.5rem, 8vw, 8rem); border-bottom: var(--border-width) solid var(--color-border); }
.case-study-publication-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 1.4vw, 1.25rem); align-items: center; }
.case-study-publication-covers { grid-column: 1 / span 5; display: flex; align-items: center; justify-content: center; gap: var(--space-4); }
.case-study-publication-cover { flex: 1 1 0; width: min(100%, 14rem); margin: 0; }
.case-study-publication-cover img { display: block; width: 100%; height: auto; }
.case-study-publication-copy { grid-column: 7 / span 5; }
.case-study-publication-copy .site-eyebrow { margin: 0 0 var(--space-5); color: var(--color-text-muted); }
.case-study-publication-copy h2 { max-width: 14ch; margin: 0; font-size: var(--type-section-title); line-height: 1.05; }
.case-study-publication-list { max-width: 31rem; margin: var(--space-5) 0 0; padding: 0; list-style: none; }
.case-study-publication-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .35rem var(--space-5); padding-block: var(--space-3); border-top: var(--border-width) solid var(--color-border); }
.case-study-publication-list li:last-child { border-bottom: var(--border-width) solid var(--color-border); }
.case-study-publication-list strong { font-weight: var(--font-weight-heading); }
.case-study-publication-list span { color: var(--color-text-muted); }
.case-study-sequence--closing { padding-top: clamp(5rem, 10vw, 10rem); }

.service-featured-projects,
.related-projects { background: var(--color-warm-white); padding-block: clamp(5rem, 9vw, 9rem); }
.service-featured-projects-header { align-items: start; margin-bottom: clamp(3rem, 5vw, 5rem); }
.service-featured-projects-header > .site-eyebrow { grid-column: 1 / span 3; margin: .45rem 0 0; color: var(--color-text-muted); }
.service-featured-projects-header > div { grid-column: 4 / span 7; }
.service-featured-projects-header h2,
.related-projects-header h2 { margin: 0; font-size: var(--type-section-title); font-weight: var(--font-weight-body); line-height: 1.06; }
.service-featured-projects-header div > p { max-width: 43rem; margin: var(--space-5) 0 0; color: var(--color-text-muted); line-height: 1.7; }
.project-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 3vw, 3.5rem) clamp(1rem, 1.4vw, 1.25rem); }
.project-card { min-width: 0; }
.project-card > a { display: block; color: inherit; text-decoration: none; }
.project-card-media { margin: 0; overflow: hidden; background: var(--color-canvas); }
.project-card-media picture,
.project-card-media img { display: block; width: 100%; }
.project-card-media img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform 320ms var(--transition-easing); }
.project-card:nth-child(1) .project-card-media img { object-position: center 58%; }
.project-card-copy { padding-top: var(--space-4); border-top: var(--border-width) solid transparent; }
.project-card-copy > .site-eyebrow { margin: 0 0 var(--space-2); color: var(--color-text-muted); }
.project-card-copy h3 { margin: 0; font-size: clamp(1.45rem, 2.15vw, 2rem); font-weight: var(--font-weight-body); line-height: 1.1; }
.project-card-copy .site-text-link { margin-top: var(--space-4); }
.project-card > a:is(:hover, :focus-visible) .project-card-media img { transform: scale(1.012); }
.project-card > a:focus-visible { outline-offset: .35rem; }
.related-projects { background: var(--color-canvas); border-top: var(--border-width) solid var(--color-border); }
.related-projects-header { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 1.4vw, 1.25rem); margin-bottom: clamp(3rem, 5vw, 5rem); }
.related-projects-header > .site-eyebrow { grid-column: 1 / span 3; margin: .45rem 0 0; color: var(--color-text-muted); }
.related-projects-header h2 { grid-column: 4 / span 7; }
.related-projects .project-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 991.98px) {
  .case-study-intro-copy { grid-column: 1 / span 8; }
  .case-study-facts { grid-column: 9 / -1; }
  .project-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-featured-projects .project-card:last-child { grid-column: 1 / -1; width: calc(50% - .625rem); }
}

@media (max-width: 767.98px) {
  .case-study-intro { padding-block: var(--space-7) var(--space-8); }
  .case-study-intro-grid,
  .service-featured-projects-header,
  .case-study-film-grid,
  .related-projects-header { display: block; }
  .case-study-intro h1 { max-width: none; font-size: clamp(3rem, 14vw, 4.35rem); }
  .case-study-summary { margin-top: var(--space-5); font-size: 1rem; }
  .case-study-facts { margin-top: var(--space-7); }
  .case-study-hero { width: 100%; margin-bottom: var(--space-8); }
  .case-study-media-grid { display: block; }
  .case-study-media + .case-study-media { margin-top: var(--space-5); }
  .case-study-sequence { padding-bottom: var(--space-9); }
  .case-study-film { padding-block: var(--space-8); }
  .case-study-film-copy { margin-bottom: var(--space-7); }
  .case-study-film-copy h2 { max-width: 13ch; }
  .case-study-publication { padding-block: var(--space-8); }
  .case-study-publication-grid { display: block; }
  .case-study-publication-covers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: flex-start; gap: var(--space-3); }
  .case-study-publication-covers--1 { display: block; }
  .case-study-publication-cover { width: 100%; }
  .case-study-publication-covers--1 .case-study-publication-cover { width: min(62vw, 15rem); }
  .case-study-publication-copy { margin-top: var(--space-7); }
  .case-study-sequence--closing { padding-top: var(--space-9); }
  .service-featured-projects,
  .related-projects { padding-block: var(--space-8); }
  .service-featured-projects-header > .site-eyebrow,
  .related-projects-header > .site-eyebrow { margin: 0 0 var(--space-4); }
  .service-featured-projects-header div > p { margin-top: var(--space-4); }
  .project-card-grid,
  .related-projects .project-card-grid { grid-template-columns: 1fr; gap: var(--space-7); }
  .service-featured-projects .project-card:last-child { grid-column: auto; width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .project-card-media img { transition: none; }
  .project-card > a:hover .project-card-media img { transform: none; }
  .case-study-video-trigger::after,
  .case-study-video-play { transition: none; }
}
