/* Approval preview v4: six project photographs and source-labelled industry imagery. */
.hero-project-mosaic { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(0,1fr)); aspect-ratio:1.08; gap:5px; border-radius:18px; overflow:hidden; background:#fff; }
.project-tile { min-width:0; min-height:0; overflow:hidden; }
.hero-project-mosaic .field-photo { display:block; width:100%; height:100%; object-fit:cover; }
.project-tile-workforce .field-photo { object-position:50% 57%; }
.project-tile-project-mobilisation .field-photo { object-position:50% 65%; }
.project-tile-site-team-orange .field-photo { object-position:50% 56%; }
.cases-photo-note { max-width:1400px; margin:0 auto 26px; color:#827963; font-size:12px; line-height:1.8; padding-left:14px; border-left:2px solid #b8a26d; }
.cases-grid { gap:26px; }
.case-photo-card { display:flex; flex-direction:column; border-color:#e9e4d9; border-radius:16px; min-width:0; }
.case-photo-card .case-art { height:auto; aspect-ratio:2.15; overflow:hidden; background:#e8e1d3; }
.case-photo-card .case-art .field-photo { transition:transform .35s ease; }
.case-photo-card:hover .case-art .field-photo { transform:scale(1.025); }
.case-photo-card .case-art::after { content:''; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,#14201975); pointer-events:none; }
.case-photo-card .case-image-label { position:absolute; left:16px; bottom:13px; top:auto; right:auto; padding:0; background:none; color:#fff; z-index:1; font-size:10px; letter-spacing:.03em; }
.case-photo-card .case-art .num { left:16px; top:14px; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#fffcf2ed; color:#8c7444; font-size:16px; z-index:1; }
.case-photo-card .case-body { padding:23px 26px; display:flex; flex-direction:column; flex:1; }
.case-photo-card h4 { line-height:1.4; margin-bottom:8px; }
.case-photo-card .case-meta { margin-top:auto; padding-top:13px; }
.case-photo-source { display:flex; justify-content:space-between; margin-top:16px; padding-top:12px; border-top:1px solid #f0ece4; color:#8a7c5c; font-size:10px; }
.case-photo-source:focus-visible { outline:2px solid #9b8249; outline-offset:4px; }
@media(max-width:760px) {
 .hero-project-mosaic { gap:4px; border-radius:13px; }
 .case-photo-card .case-art { height:auto; aspect-ratio:1.8; }
 .case-photo-card .case-body { padding:21px; }
 .cases-photo-note { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { .case-photo-card .case-art .field-photo { transition:none; } .case-photo-card:hover .case-art .field-photo { transform:none; } }
